mike-neckのブログ

Java or Groovy or Swift or Golang

Kotlin の基礎を身につけるための学習素材を作ってみた

Kotlin を使ったプログラムを書く場合には以下の要素によってプログラムを書く速さが決まってくる

続きを読む

Interface に対してプログラミングする

interface に対してプログラミングするのがベストプラクティスであるとする考え方が、 Java のプログラミングにあるようです。

依存関係を切断・逆転できて便利とか、インターフェースが変わらない限りは実装が変更されても利用するクラスは変更されないなどのメリットがあるんじゃないでしょうか。

オブジェクト指向のなんたるかを論じるほど僕はデキたプログラマーではないので、かわりに Gradlle を使ってビルドするときにどれくらい嬉しいのかを書いていきたいと思います。

なお、これはつい先日(2020/12/11)に行われた JJUG ナイトセミナー Maven/Gradle ビルドツール特集のときにさらりと話した部分の補遺です。

f:id:mike_neck:20201219214441p:plain

続きを読む

GraalVM 20.3 から TraceClassInitialization オプションの指定方法が変更になっていた

GraalVM 20.3 から TraceClassInitialization オプションが boolean 指定ではなく、 List 指定になっています。

そのため、 20.2 まで以下のようにオプションを指定していた場合、カンマ区切りの FQCN に修正する必要があります

〜 20.2 まで

-H:+TraceClassInitialization

20.3 〜

-H:TraceClassInitialization=com.example.FooBarClassName,com.example.BazQuxFullyQualifiedClassName

java プラグインの compile/runtime Configuration が 6.8 の次の 7 からなくなるらしいです

タイトルにあるようなツイートを見かけたので、念の為に。

雑な訳

6.8 の次は 7.0 だよ、いいね

このバージョンからは compileruntime Configuration がなくなるのでお間違いなく

で、 compileruntime を取り除く PR はこちら

github.com

移行方法も書いてあって、

  1. runtime については runtimeOnly に変更する
  2. java プラグインjava-library プラグインに変更する
  3. compileapi に変更する
  4. api は普通は必要ないので、影響のないところから implementation に変更する

f:id:mike_neck:20201213233238p:plain

PR の本文にはバックポートするようなプラグインが云々書いてあるが、出てくるかどうかはわからん