かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Spring Boot + npm + Geb で入力フォームを作ってテストする ( その88 )( Gradle を 5.3.1 → 6.4 へバージョンアップする )

概要

記事一覧はこちらです。

Spring Boot + npm + Geb で入力フォームを作ってテストする ( その87 )( postcss-cli を 6.1.2 → 7.1.1 へ、prettier を 1.16.4 → 2.0.5 へ、stylelint を 9.10.1 → 13.3.3 へバージョンアップする ) の続きです。

  • 今回の手順で確認できるのは以下の内容です。
    • Gradle を 5.3.1 → 6.4 へバージョンアップします。

参照したサイト・書籍

目次

  1. .gitignore に /src/main/generated、/src/test/generated_tests を追加する
  2. Gradle を 5.3.1 → 6.4 へバージョンアップする

手順

.gitignore に /src/main/generated、/src/test/generated_tests を追加する

IntelliJ IDEA を 2019.3 以降にバージョンアップすると generated ディレクトリを作成するようになるので、.gitignore に /src/main/generated、/src/test/generated_tests を追加してその下に作成されるファイルを git の対象外になるようにします。

..........

# Intellij project files
*.iml
*.ipr
*.iws
**/.idea/
**/out/
**/src/main/resources/static
**/src/main/generated
**/src/test/generated_tests

..........

Gradle を 5.3.1 → 6.4 へバージョンアップする

build.gradle の wrapper タスクの記述を以下のように変更します。

wrapper {
    gradleVersion = "6.4"
    distributionType = Wrapper.DistributionType.ALL
}
  • gradleVersion = "5.3.1"gradleVersion = "6.4" に変更します。

コマンドプロンプトから gradlew wrapper --gradle-version=6.4gradlew --version コマンドを実行します。

f:id:ksby:20200508010358p:plain

gradle/wrapper/gradle-wrapper.properties は以下の内容になります。

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

JVM を呼び出す時のメモリ割り当ての記述が元に戻るので、gradlew.bat 内の記述を set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" → set DEFAULT_JVM_OPTS="-Xmx4096m" に変更します(gradlew も同じような変更をします)。

Gradle を 6 系に上げただけだと SpotBugs のタスクが動作しなくなるので(バージョンアップが必要)、一旦 SpotBugs をコメントアウトします。build.gradle を以下のように変更します。

plugins {
    id "java"
    id "eclipse"
    id "idea"
    id "org.springframework.boot" version "2.1.4.RELEASE"
    id "io.spring.dependency-management" version "1.0.7.RELEASE"
    id "groovy"
    id "net.ltgt.errorprone" version "0.7.1"
    id "checkstyle"
//    id "com.github.spotbugs" version "1.6.9"
    id "pmd"
    id "com.moowork.node" version "1.3.1"
    id "com.gorylenko.gradle-git-properties" version "2.0.0"
// Gradle 5.3 で internal API が変更されて gradle-processes が動かなくなったのでコメントアウトする
//    id "com.github.johnrengelman.processes" version "0.5.0"
    id "com.energizedwork.webdriver-binaries" version "1.4"
}

..........

//spotbugs {
//    // SpotBugs のレポートファイルは Firefox で見ると文字化けしない
//    toolVersion = "3.1.11"
//    ignoreFailures = true
//    effort = "max"
//    excludeFilter = file("${rootProject.projectDir}/config/spotbugs/spotbugs-exclude-filter.xml")
//    spotbugsTest.enabled = false
//}
//tasks.withType(com.github.spotbugs.SpotBugsTask) {
//    reports {
//        xml.enabled = false
//        html.enabled = true
//    }
//}

..........

dependencies {
    ..........

    // for SpotBugs
//    compileOnly("com.github.spotbugs:spotbugs:${spotbugsVersion}")
//    compileOnly("net.jcip:jcip-annotations:1.0")
//    compileOnly("com.github.spotbugs:spotbugs-annotations:${spotbugsVersion}")
//    testImplementation("com.google.code.findbugs:jsr305:3.0.2")

    ..........
}

Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。

clean タスク実行 → Rebuild Project 実行 → build タスクを実行すると Doma 2 関連のエラーが出ました。build.gradle の記述の仕方が古いのが原因です。

f:id:ksby:20200508012359p:plain

build.gradle を以下のように変更します。

..........

// for Doma 2
// Copy the resources referred by the Doma annotation processors to
// the destinationDir of the compileJava task
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

springBoot {
    buildInfo()
}

..........
  • 以下の2行を削除します。
    • processResources.destinationDir = compileJava.destinationDir
    • compileJava.dependsOn processResources
  • 以下の設定を追加します。
    • task copyDomaResources(type: Sync) { ... }
    • compileJava.dependsOn copyDomaResources

再度 build タスクを実行すると今度は pmdMain でエラーが出ました。

f:id:ksby:20200509005659p:plain

Spring Boot 2.1.x の Web アプリを 2.2.x へバージョンアップする ( その2 )( Spring Boot を 2.1.4 → 2.1.11 へ、Gradle を 5.3.1 → 5.6.4 へバージョンアップする ) で以下の赤枠の記述を削除していたので、今回も同様に削除します。

f:id:ksby:20200509005813p:plain

再度 build タスクを実行すると無事 "BUILD SUCCESSFUL" のメッセージが出力されました。

f:id:ksby:20200509011146p:plain

履歴

2020/05/09
初版発行。