Spring Boot 1.3.x の Web アプリを 1.4.x へバージョンアップする ( その18 )( Gradle のバージョンを 2.13 → 3.x へバージョンアップ。。。しようと思いましたが止めました )
概要
記事一覧はこちらです。
Spring Boot 1.3.x の Web アプリを 1.4.x へバージョンアップする ( その17 )( テストクラスのモックを @MockBean + Mockito で作り直す2 ) の続きです。
- 今回の手順で確認できるのは以下の内容です。
- 現在プロジェクトで使用している Gradle のバージョンは 2.13 ですが、3系に上げると処理スピードが上がるそうなので 3.x へバージョンアップします。。。と思いましたが止めました、という話です。
参照したサイト・書籍
Gradle Goodness: Replacing << Operator For Tasks
http://mrhaki.blogspot.jp/2016/11/gradle-goodness-replacing-operator-for.htmlDeprecation warnings
http://stackoverflow.com/questions/41619040/deprecation-warningsGradle logs a non-fatal error message with FindBugs https://github.com/gradle/gradle/issues/1094
目次
- 3系のどのバージョンにするか?
- Gradle を 3.3 へバージョンアップする
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
- FindBugs の
Cannot open codebase filesystem:...
- 今回のバージョンアップの変更は全て取り消します
手順
3系のどのバージョンにするか?
Gradle の Installation のページを見ると最新バージョンは 3.4.1 ですが、IntelliJ IDEA 2017.1 で Gradle プロジェクトを作成してみると、使用されているバージョンは 3.3 でした。
ビルドツールは安定性を求めたいので、IDEA で使用されている 3.3 にバージョンアップします。
Gradle を 3.3 へバージョンアップする
build.gradle を リンク先のその1の内容 に変更します。
コマンドプロンプトを起動し、
gradlew wrapper
コマンドを実行します。gradle/wrapper/gradle-wrapper.properties を開くと
gradle-3.3-bin.zip
に変更されていました。Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。いつもより少し時間がかかりますが、エラーが出ずに終了しました。
clean タスク実行 → Rebuild Project → build タスクを実行してみます。
最後に
BUILD SUCCESSFUL
のメッセージが出力されてタスクは成功したようですが、以下のメッセージも出力されていました。メッセージが出ないようにします。The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
というエラーメッセージが出ます。build.gradle 内のtask domaGen << {
の<<
が deprecated のようです。- FindBugs の出力が変わりました。しかも大量に
Cannot open codebase filesystem:...
というメッセージが出力されました。
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
Gradle Goodness: Replacing << Operator For Tasks を見ると、以下のように変更すればよいようです。
task domaGen << { .......... }
↓↓↓
task domaGen {
doLast {
..........
}
}
Gradle の User Guide の Chapter 19. More about Tasks も見つけましたが、こちらも doLast { ... }
の記述になっていました。この書き方へ変更します。
build.gradle を リンク先のその2の内容 に変更します。
Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。
実行しても影響が出ない printClassWhatNotMakeTest タスクを実行してみると特にエラーは出ずに終了しました。
clean タスク → Rebuild Project → build タスクを実行してみると、起動時のメッセージは出なくなりました。
FindBugs の Cannot open codebase filesystem:...
調べると gradle/gradle の Issue に Gradle logs a non-fatal error message with FindBugs というものがありました。3.3 からロギングの仕組みを一部変更したのがメッセージが出るようになった原因のようです。また debug レベルのメッセージが出ているだけで問題はないらしい(確かに BUILD SUCCESSFUL
は出ていました)。
でもこの Issue はまだクローズされておらず、解決はしていないようです。エラーでないとはいえ、メッセージが大量に出るものはさすがに使いたくないですね。。。
gradle/gradle の Releases のページを見ると #1646: Noisy Findbugs plugin with quiet log level with Gradle 3.5 RC1
という記述がありますが、中身を見ると該当するようなしないような。。。 ただし tbroyer/gradle-errorprone-plugin のページを見ると、現在使用している 0.0.9 は 3.4 までしか対応していないようです。
試しに 3.4.1 にバージョンアップして clean タスク → Rebuild Project → build タスクを実行してみましたが、FindBugs が大量にメッセージを出力する現象は変わりませんでした。
3.5-rc-3 にバージョンアップすると今度は gradle-errorprone-plugin でエラーになります。
今回のバージョンアップの変更は全て取り消します
3.2 にすれば FindBugs のメッセージが出る現象はなくなるようなのですが、2 系でも特に不満がないので今回は 2.13 に戻すことにします。3 系にバージョンアップするのはもう少し様子を見てからにします。
ソースコード
build.gradle
■その1
sourceCompatibility = 1.8 targetCompatibility = 1.8 task wrapper(type: Wrapper) { gradleVersion = '3.3' }
gradleVersion = '2.13'
→gradleVersion = '3.3'
に変更します。
■その2
// for Doma-Gen task domaGen { doLast { .......... } } task downloadCssFontsJs { doLast { .......... } } task printClassWhatNotMakeTest { doLast { .......... } }
履歴
2017/04/05
初版発行。