ソフラボの技術ブログ

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

Gradle4.xから6.xで変更する依存関係の定義

Graldeを4.10.2から6.0.1にバージョンアップしたときに警告やエラーが出たので、そのときに変更した依存関係周りを簡単にまとめました。

個人的にGradleはあまり詳しくないので、今回影響があった部分のみの記載です。

さらに詳細を知りたい方は、参考サイトをご覧ください。

バージョンアップ時のエラー

Gradle6にしてビルド等を走らせると、lombokを使用している場合、認識されずコンパイルが通りません。
いつの間にかGradleの設定方法が変わっていたので、その辺を変更します。

依存関係

ライブラリの依存定義に使う設定名が以下のように変わっています。

compile -> implementation
compile files -> implementation files
runtime -> runtimeOnly
providedCompile -> compileOnly

注釈処理

annotationProcessor」というものを使う必要があります。
以下、Domalombokの場合です。

// Doma
annotationProcessor 'org.seasar.doma:doma:2.19.3' 
implementation 'org.seasar.doma:doma:2.19.3' 

// lombok
annotationProcessor 'org.projectlombok:lombok:1.18.8'
compileOnly 'org.projectlombok:lombok:1.18.8'

Domaの場合、追加で以下も必要です。書き方が変わっています。

task copyDomaResources(type: Sync)  {
    from sourceSets.main.resources.srcDirs
    into compileJava.destinationDir
    include 'doma.compile.config'
    include 'META-INF/**/*.sql'
    include 'META-INF/**/*.script'
}

compileJava {
	dependsOn copyDomaResources
}

警告の確認

古い定義でもそのまま使えますが、バージョンアップ毎に非推奨の定義があり、将来的に削除されます。
スムーズにバージョンアップするためにも、非推奨定義は別の定義に変更しておいた方が良いです。
非推奨や警告定義の確認は、Gradleの各コマンドで「--warning-mode all」を付与すると出力されます。

gradle build --warning-mode all