Spring Boot 1.3.x の Web アプリを 1.4.x へバージョンアップする ( その3 )( build.gradle の修正 )
概要
記事一覧はこちらです。
- 今回の手順で確認できるのは以下の内容です。
- build.gradle の修正
参照したサイト・書籍
gradle 2.12 で対応された compileOnly を試す
http://qiita.com/or_die/items/709b5c37ff34ee2839b3gradleのcompileOnlyで指定したライブラリはtestCompileに引き継がれない
http://qiita.com/gillax/items/1cbcff003384087f2db13.Maven 入門 (2)
http://www.techscore.com/tech/Java/ApacheJakarta/Maven/3/- maven の provided scope を調べた時に参照しました。
目次
手順
Spring Initializr で 1.4.4 のプロジェクトを作成する
「Welcome to IntelliJ IDEA」ダイアログで「Create New Project」をクリックします。
「New Project」ダイアログが表示されます。画面左側のリストから「Spring Initializr」を選択した後、「Next」ボタンをクリックします。
次の画面が表示されます。「Type」で「Gradle Project」を選択した後、「Next」ボタンをクリックします。
次の画面が表示されます。画面中央上の「Spring Boot」で「1.4.4」を選択してから ksbysample-webapp-lending プロジェクトで使用している以下の項目をチェックした後、「Next」ボタンをクリックします。
次の画面が表示されます。「Project location」を “C:\project-springboot\demo” に変更した後、「Finish」ボタンをクリックします。
「Import Module from Gradle」ダイアログが表示されます。「Create directories for empty content roots automatically」をチェックした後、「OK」ボタンをクリックします。
これでプロジェクトが作成されて以下の build.gradle が作成されました。
buildscript { ext { springBootVersion = '1.4.4.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' jar { baseName = 'demo' version = '0.0.1-SNAPSHOT' } sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile('org.springframework.boot:spring-boot-starter-data-redis') compile('org.springframework.boot:spring-boot-starter-mail') compile('org.springframework.boot:spring-boot-starter-security') compile('org.springframework.session:spring-session') compile('org.springframework.boot:spring-boot-starter-thymeleaf') compile('org.springframework.boot:spring-boot-starter-web') runtime('org.springframework.boot:spring-boot-devtools') compileOnly('org.projectlombok:lombok') testCompile('org.springframework.boot:spring-boot-starter-test') }
以下の点が 1.3.5 で生成した時とは違っていました。これらは反映したいと思います。
- 以前は
apply plugin: 'spring-boot'
でしたがapply plugin: 'org.springframework.boot'
に変わっています。 - 以前は入っていた
eclipse { ... }
の記述がなくなっています。 - lombok は
compile(...)
ではなくcompileOnly(...)
になっています。maven の provided scope に対応したものだそうです。
build.gradle を修正して build してみる
build.gradle を リンク先のその1の内容 に変更します。
Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。
Gradle DSL method not found: 'compileOnly()'
のエラーが表示されました。先程 Spring Initializr で作成したプロジェクトと ksbysample-webapp-lending プロジェクトの gradle のバージョンを gradle/wrapper/gradle-wrapper.properties を見て比較すると、前者が
gradle-2.13-bin.zip
、後者がgradle-2.2-bin.zip
でした。compileOnly が追加されたのが 2.12 からなので、gradle のバージョンが低いことが原因のようです。
gradle をバージョンアップします。最初に build.gradle を リンク先のその2の内容 に変更します。
gradlew wrapper
コマンドを実行します。が、Spring Boot plugin's support for Gradle 2.2 is deprecated. Please upgrade to Gradle 2.9 or later.
と出力されてエラーになりました。これは一旦 build.gradle を元に戻して gradle を先にバージョンアップした方がよさそうですね。。。
現在の build.gradle の内容を別のテキストファイルに退避し、Git でソースの変更を破棄します。
変更前の build.gradle に対して リンク先のその2の内容 の変更を反映した後、
gradlew wrapper
コマンドを実行します。今度は成功しました。gradle/wrapper/gradle-wrapper.properties を見ると
gradle-2.13-bin.zip
になっていました。再び build.gradle を リンク先のその1の内容 に変更します。リンク先のその2の内容 も反映します。
Gradle Tool Window の左上にある「Refresh all Gradle projects」ボタンをクリックして更新します。今度はエラー等は出ずに終了しました。
clean タスク実行 → Rebuild Project 実行 を実行します。
Error が 0個、Warning が 37 個出ました。Warning は以下の3種類でした。
java: org.springframework.ui.velocityのorg.springframework.ui.velocity.VelocityEngineUtilsは非推奨になりました
java: com.univocity.parsers.common.CommonParserSettingsのsetRowProcessor(com.univocity.parsers.common.processor.RowProcessor)は非推奨になりました
java: org.springframework.boot.testのorg.springframework.boot.test.SpringApplicationConfigurationは非推奨になりました
Velocity は Spring Boot 1.5 からサポートされなくなると聞いていましたが、1.4 から非推奨ですか。。。 あとは uniVocity-parsers で RowProcessor が非推奨になったのと、1.4 からテスト用のアノテーションが大きく変更されているようなのでその影響による Warning ですね。
build タスクを実行します。
テストの結果は
178 tests completed, 165 failed, 8 skipped
で、BUILD FAILED が表示されました。Caused by: java.lang.ClassNotFoundException
が大量に出力されているのが気になります。Project Tool Window の src/test から「Run ‘All Tests’ with Coverage」も実行してみます。
build タスクの結果から分かっていましたが、ほぼ全滅でした。。。 また build タスクで大量に出ていた ClassNotFoundException ですが、
java.lang.NoClassDefFoundError: org/thymeleaf/dialect/IExpressionObjectDialect
が原因のようです。
次回は。。。
1.2.x → 1.3.x へバージョンアップした時と同様に、Rebuild Project 実行時の Warning の解消 → Run ‘All Tests’ with Coverage のエラーの解消 → build タスクの再実行 ( エラーが出れば解消します ) の順で進める予定です。
Velocity の非推奨の対応が悩みどころです。Thymeleaf の 3 から TEXT モードがあるので、これでしょうか。Web で検索したら migration guide がヒットしたのでちょっと読んでみたいと思います。Velocity の対応は後回しにして他の部分だけ進めるかもしれません。
- Thymeleaf 3 ten-minute migration guide
http://www.thymeleaf.org/doc/articles/thymeleaf3migration.html
ソースコード
build.gradle
■その1
buildscript { ext { springBootVersion = '1.4.4.RELEASE' } repositories { jcenter() maven { url "http://repo.spring.io/repo/" } } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") classpath("io.spring.gradle:dependency-management-plugin:0.6.1.RELEASE") // for Grgit classpath("org.ajoberstar:grgit:1.8.0") // Gradle Download Task classpath("de.undercouch:gradle-download-task:3.2.0") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' apply plugin: 'de.undercouch.download' apply plugin: 'groovy' sourceCompatibility = 1.8 targetCompatibility = 1.8 [compileJava, compileTestGroovy, compileTestJava]*.options*.compilerArgs = ['-Xlint:all,-options,-processing'] // for Doma 2 // JavaクラスとSQLファイルの出力先ディレクトリを同じにする processResources.destinationDir = compileJava.destinationDir // コンパイルより前にSQLファイルを出力先ディレクトリにコピーするために依存関係を逆転する compileJava.dependsOn processResources jar { baseName = 'ksbysample-webapp-lending' version = '1.1.0-RELEASE' } idea { module { inheritOutputDirs = false outputDir = file("$buildDir/classes/main/") } } configurations { domaGenRuntime } repositories { jcenter() } dependencyManagement { imports { mavenBom 'io.spring.platform:platform-bom:Athens-SR3' } } bootRepackage { mainClass = 'ksbysample.webapp.lending.Application' excludeDevtools = true } dependencies { def jdbcDriver = "org.postgresql:postgresql:9.4.1212" // dependency-management-plugin によりバージョン番号が自動で設定されるもの // Appendix A. Dependency versions ( http://docs.spring.io/platform/docs/current/reference/htmlsingle/#appendix-dependency-versions ) 参照 compile("org.springframework.boot:spring-boot-starter-web") compile("org.springframework.boot:spring-boot-starter-thymeleaf") compile("org.thymeleaf.extras:thymeleaf-extras-springsecurity4") compile("org.springframework.boot:spring-boot-starter-data-jpa") compile("org.springframework.boot:spring-boot-starter-velocity") compile("org.springframework.boot:spring-boot-starter-mail") compile("org.springframework.boot:spring-boot-starter-security") compile("org.springframework.boot:spring-boot-starter-redis") compile("org.springframework.boot:spring-boot-starter-amqp") compile("org.springframework.boot:spring-boot-devtools") compile("org.springframework.session:spring-session") compile("org.codehaus.janino:janino") compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310") compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") testCompile("org.springframework.boot:spring-boot-starter-test") testCompile("org.springframework.security:spring-security-test") testCompile("org.yaml:snakeyaml") testCompile("org.spockframework:spock-core") { exclude module: "groovy-all" } testCompile("org.spockframework:spock-spring") { exclude module: "groovy-all" } // dependency-management-plugin によりバージョン番号が自動で設定されないもの、あるいは最新バージョンを指定したいもの runtime("${jdbcDriver}") compile("org.seasar.doma:doma:2.15.0") compile("org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16") compile("org.apache.commons:commons-lang3:3.5") compile("com.google.guava:guava:21.0") compile("org.simpleframework:simple-xml:2.7.1") compile("com.univocity:univocity-parsers:2.3.1") compile("org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.0.RELEASE") testCompile("org.dbunit:dbunit:2.5.3") testCompile("com.icegreen:greenmail:1.5.3") testCompile("org.assertj:assertj-core:3.6.2") testCompile("com.jayway.jsonpath:json-path:2.2.0") testCompile("org.jmockit:jmockit:1.30") // for lombok compileOnly("org.projectlombok:lombok:1.16.12") testCompileOnly("org.projectlombok:lombok:1.16.12") // for Doma-Gen domaGenRuntime("org.seasar.doma:doma-gen:2.15.0") domaGenRuntime("${jdbcDriver}") } bootRun { jvmArgs = ['-Dspring.profiles.active=develop'] } test { jvmArgs = ['-Dspring.profiles.active=unittest'] } // for Doma-Gen task domaGen << { // まず変更が必要なもの def rootPackageName = 'ksbysample.webapp.lending' def daoPackagePath = 'src/main/java/ksbysample/webapp/lending/dao' def dbUrl = 'jdbc:postgresql://localhost/ksbylending' def dbUser = 'ksbylending_user' def dbPassword = 'xxxxxxxx' def tableNamePattern = '.*' // おそらく変更不要なもの def importOfComponentAndAutowiredDomaConfig = "${rootPackageName}.util.doma.ComponentAndAutowiredDomaConfig" def workDirPath = 'work' def workDaoDirPath = "${workDirPath}/dao" // 作業用ディレクトリを削除する clearDir("${workDirPath}") // 現在の Dao インターフェースのバックアップを取得する copy() { from "${daoPackagePath}" into "${workDaoDirPath}/org" } // Dao インターフェース、Entity クラスを生成する ant.taskdef(resource: 'domagentask.properties', classpath: configurations.domaGenRuntime.asPath) ant.gen(url: "${dbUrl}", user: "${dbUser}", password: "${dbPassword}", tableNamePattern: "${tableNamePattern}") { entityConfig(packageName: "${rootPackageName}.entity", useListener: false) daoConfig(packageName: "${rootPackageName}.dao") sqlConfig() } // 生成された Dao インターフェースを作業用ディレクトリにコピーし、 // @ComponentAndAutowiredDomaConfig アノテーションを付加する copy() { from "${daoPackagePath}" into "${workDaoDirPath}/replace" filter { line -> line.replaceAll('import org.seasar.doma.Dao;', "import ${importOfComponentAndAutowiredDomaConfig};\nimport org.seasar.doma.Dao;") .replaceAll('@Dao', '@Dao\n@ComponentAndAutowiredDomaConfig') } } // @ComponentAndAutowiredDomaConfig アノテーションを付加した Dao インターフェースを // dao パッケージへ戻す copy() { from "${workDaoDirPath}/replace" into "${daoPackagePath}" } // 元々 dao パッケージ内にあったファイルを元に戻す copy() { from "${workDaoDirPath}/org" into "${daoPackagePath}" } // 作業用ディレクトリを削除する clearDir("${workDirPath}") // 自動生成したファイルを git add する addGit() } task downloadCssFontsJs << { def staticDirPath = 'src/main/resources/static' def workDirPath = 'work' def adminLTEVersion = '2.2.0' def jQueryVersion = '2.1.4' def fontAwesomeVersion = '4.3.0' def ioniconsVersion = '2.0.1' def html5shivJsVersion = '3.7.2' def respondMinJsVersion = '1.4.2' // 作業用ディレクトリを削除する clearDir("${workDirPath}") // Bootstrap & AdminLTE Dashboard & Control Panel Template downloadAdminLTE("${adminLTEVersion}", "${jQueryVersion}", "${workDirPath}", "${staticDirPath}") // Font Awesome Icons downloadFontAwesome("${fontAwesomeVersion}", "${workDirPath}", "${staticDirPath}") // Ionicons downloadIonicons("${ioniconsVersion}", "${workDirPath}", "${staticDirPath}") // html5shiv.js downloadHtml5shivJs("${html5shivJsVersion}", "${workDirPath}", "${staticDirPath}") // respond.min.js downloadRespondMinJs("${respondMinJsVersion}", "${workDirPath}", "${staticDirPath}") // fileinput.min.js ( v4.2.7 ) downloadBootstrapFileInputMinJs("${workDirPath}", "${staticDirPath}") // 作業用ディレクトリを削除する clearDir("${workDirPath}") // 追加したファイルを git add する addGit() } task printClassWhatNotMakeTest << { def srcDir = new File("src/main/java"); def excludePaths = [ "src/main/java/ksbysample/webapp/lending/Application.java" , "src/main/java/ksbysample/webapp/lending/config" , "src/main/java/ksbysample/webapp/lending/cookie" , "src/main/java/ksbysample/webapp/lending/dao" , "src/main/java/ksbysample/webapp/lending/entity" , "src/main/java/ksbysample/webapp/lending/exception" , "src/main/java/ksbysample/webapp/lending/helper/download/booklistcsv" , "src/main/java/ksbysample/webapp/lending/helper/download/DataDownloadHelper.java" , "src/main/java/ksbysample/webapp/lending/helper/page/PagenationHelper.java" , "src/main/java/ksbysample/webapp/lending/security/LendingUser.java" , "src/main/java/ksbysample/webapp/lending/security/RoleAwareAuthenticationSuccessHandler.java" , "src/main/java/ksbysample/webapp/lending/service/calilapi/response" , "src/main/java/ksbysample/webapp/lending/service/file/BooklistCSVRecord.java" , "src/main/java/ksbysample/webapp/lending/service/openweathermapapi" , "src/main/java/ksbysample/webapp/lending/service/queue/InquiringStatusOfBookQueueMessage.java" , "src/main/java/ksbysample/webapp/lending/util/doma" , "src/main/java/ksbysample/webapp/lending/util/velocity/VelocityUtils.java" , "src/main/java/ksbysample/webapp/lending/values/validation/ValuesEnum.java" , "src/main/java/ksbysample/webapp/lending/view/BookListCsvView.java" , "src/main/java/ksbysample/webapp/lending/web/.+/.+Service.java" , "src/main/java/ksbysample/webapp/lending/webapi/common/CommonWebApiResponse.java" , "src/main/java/ksbysample/webapp/lending/webapi/weather" ]; def excludeFileNamePatterns = [ ".*EventListener.java" , ".*Dto.java" , ".*Form.java" , ".*Values.java" ]; compareSrcAndTestDir(srcDir, excludePaths, excludeFileNamePatterns); } /* ----------------------------------------------------------------------------- * メソッド定義部 ---------------------------------------------------------------------------- */ void clearDir(String dirPath) { delete dirPath } void addGit() { def grgit = org.ajoberstar.grgit.Grgit.open(dir: project.projectDir) grgit.add(patterns: ['.']) } void downloadAdminLTE(String adminLTEVersion, String jQueryVersion, String workDirPath, String staticDirPath) { download { src "https://codeload.github.com/almasaeed2010/AdminLTE/zip/v${adminLTEVersion}" dest new File("${workDirPath}/download/AdminLTE-${adminLTEVersion}.zip") } copy { from zipTree("${workDirPath}/download/AdminLTE-${adminLTEVersion}.zip") into "${workDirPath}/unzip" } copy { from "${workDirPath}/unzip/AdminLTE-${adminLTEVersion}/bootstrap/css" into "${staticDirPath}/css" } copy { from "${workDirPath}/unzip/AdminLTE-${adminLTEVersion}/bootstrap/fonts" into "${staticDirPath}/fonts" } copy { from "${workDirPath}/unzip/AdminLTE-${adminLTEVersion}/bootstrap/js" into "${staticDirPath}/js" } copy { from "${workDirPath}/unzip/AdminLTE-${adminLTEVersion}/dist/css" into "${staticDirPath}/css" } copy { from "${workDirPath}/unzip/AdminLTE-${adminLTEVersion}/dist/js" into "${staticDirPath}/js" } copy { from "${workDirPath}/unzip/AdminLTE-${adminLTEVersion}/plugins/jQuery/jQuery-${jQueryVersion}.min.js" into "${staticDirPath}/js" } delete "${staticDirPath}/js/pages" delete "${staticDirPath}/js/demo.js" } void downloadFontAwesome(String fontAwesomeVersion, String workDirPath, String staticDirPath) { download { src "http://fortawesome.github.io/Font-Awesome/assets/font-awesome-${fontAwesomeVersion}.zip" dest new File("${workDirPath}/download/font-awesome-${fontAwesomeVersion}.zip") } copy { from zipTree("${workDirPath}/download/font-awesome-${fontAwesomeVersion}.zip") into "${workDirPath}/unzip" } copy { from "${workDirPath}/unzip/font-awesome-${fontAwesomeVersion}/css/font-awesome.min.css" into "${staticDirPath}/css" } copy { from "${workDirPath}/unzip/font-awesome-${fontAwesomeVersion}/fonts" into "${staticDirPath}/fonts" } } void downloadIonicons(String ioniconsVersion, String workDirPath, String staticDirPath) { download { src "https://codeload.github.com/driftyco/ionicons/zip/v${ioniconsVersion}" dest new File("${workDirPath}/download/ionicons-${ioniconsVersion}.zip") } copy { from zipTree("${workDirPath}/download/ionicons-${ioniconsVersion}.zip") into "${workDirPath}/unzip" } copy { from "${workDirPath}/unzip/ionicons-${ioniconsVersion}/css/ionicons.min.css" into "${staticDirPath}/css" } copy { from "${workDirPath}/unzip/ionicons-${ioniconsVersion}/fonts" into "${staticDirPath}/fonts" } } void downloadHtml5shivJs(String html5shivJsVersion, String workDirPath, String staticDirPath) { download { src "https://oss.maxcdn.com/html5shiv/${html5shivJsVersion}/html5shiv.min.js" dest new File("${workDirPath}/download/html5shiv.min.js") } copy { from "${workDirPath}/download/html5shiv.min.js" into "${staticDirPath}/js" } } void downloadRespondMinJs(String respondMinJsVersion, String workDirPath, String staticDirPath) { download { src "https://oss.maxcdn.com/respond/${respondMinJsVersion}/respond.min.js" dest new File("${workDirPath}/download/respond.min.js") } copy { from "${workDirPath}/download/respond.min.js" into "${staticDirPath}/js" } } void downloadBootstrapFileInputMinJs(String workDirPath, String staticDirPath) { download { src "https://github.com/kartik-v/bootstrap-fileinput/zipball/master" dest new File("${workDirPath}/download/kartik-v-bootstrap-fileinput.zip") } copy { from zipTree("${workDirPath}/download/kartik-v-bootstrap-fileinput.zip") into "${workDirPath}/unzip" } copy { from "${workDirPath}/unzip/kartik-v-bootstrap-fileinput-883d8b6/js/fileinput.min.js" into "${staticDirPath}/js" } copy { from "${workDirPath}/unzip/kartik-v-bootstrap-fileinput-883d8b6/js/fileinput_locale_ja.js" into "${staticDirPath}/js" } copy { from "${workDirPath}/unzip/kartik-v-bootstrap-fileinput-883d8b6/css/fileinput.min.css" into "${staticDirPath}/css" } } def compareSrcAndTestDir(srcDir, excludePaths, excludeFileNamePatterns) { def existFlg def testDirAndTestClassNameList = [ ["src/test/java", "Test.java"] , ["src/test/groovy", "Test.groovy"] ] for (srcFile in srcDir.listFiles()) { String srcFilePath = (srcFile.toPath() as String).replaceAll("\\\\", "/") existFlg = false for (exclude in excludePaths) { if (srcFilePath =~ /^${exclude as String}/) { existFlg = true break } } if (existFlg == true) continue for (exclude in excludeFileNamePatterns) { if (srcFilePath =~ /${exclude as String}/) { existFlg = true break } } if (existFlg == true) continue if (srcFile.isDirectory()) { compareSrcAndTestDir(srcFile, excludePaths, excludeFileNamePatterns) } else { def nextFlg = false for (testDirAndTestClassName in testDirAndTestClassNameList) { def testDir = testDirAndTestClassName[0] def testClassName = testDirAndTestClassName[1] String testFilePath = srcFilePath.replaceFirst(/^src\/main\/java/, testDir).replaceFirst(/\.java$/, testClassName) def testFile = new File(testFilePath) if (testFile.exists()) { nextFlg = true break } } if (nextFlg) continue println(srcFilePath); } } }
- Spring Boot のバージョンアップ対応として以下の点を変更します。
- buildscript の以下の点を変更します。
springBootVersion = '1.3.5.RELEASE'
→springBootVersion = '1.4.4.RELEASE'
に変更します。classpath("io.spring.gradle:dependency-management-plugin:0.5.6.RELEASE")
→classpath("io.spring.gradle:dependency-management-plugin:0.6.1.RELEASE")
に変更します。dependency-management-plugin は 1.0.0.RELEASE が出ていますが、これと spring-boot-gradle-plugin を一緒に入れると動かないので今回は 0.6.1.RELEASE を使用します。
apply plugin: 'spring-boot'
→apply plugin: 'org.springframework.boot'
に変更します。- dependencyManagement の以下の点を変更します。
mavenBom 'io.spring.platform:platform-bom:2.0.5.RELEASE'
→mavenBom 'io.spring.platform:platform-bom:Athens-SR3'
に変更します。
- buildscript の以下の点を変更します。
- ライブラリを最新バージョンにアップデートするために以下の点を変更します。
- buildscript の以下の点を変更します。
classpath("org.ajoberstar:grgit:1.7.0")
→classpath("org.ajoberstar:grgit:1.8.0")
に変更します。classpath("de.undercouch:gradle-download-task:3.0.0")
→classpath("de.undercouch:gradle-download-task:3.2.0")
に変更します。
- dependencies の以下の点を変更します。
def jdbcDriver = "org.postgresql:postgresql:9.4.1208"
→def jdbcDriver = "org.postgresql:postgresql:9.4.1212"
に変更します。compile("org.seasar.doma:doma:2.8.0")
→compile("org.seasar.doma:doma:2.15.0")
に変更します。compile("org.apache.commons:commons-lang3:3.4")
→compile("org.apache.commons:commons-lang3:3.5")
に変更します。compile("org.projectlombok:lombok:1.16.8")
→compileOnly("org.projectlombok:lombok:1.16.12")
に変更します。compile("com.google.guava:guava:19.0")
→compile("com.google.guava:guava:21.0")
に変更します。compile("com.univocity:univocity-parsers:2.1.1")
→compile("com.univocity:univocity-parsers:2.3.1")
に変更します。compile("org.thymeleaf.extras:thymeleaf-extras-java8time:2.1.0.RELEASE")
→compile("org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.0.RELEASE")
に変更します。testCompile("org.dbunit:dbunit:2.5.1")
→testCompile("org.dbunit:dbunit:2.5.3")
に変更します。testCompile("com.icegreen:greenmail:1.5.0")
→testCompile("com.icegreen:greenmail:1.5.3")
に変更します。testCompile("org.assertj:assertj-core:3.4.1")
→testCompile("org.assertj:assertj-core:3.6.2")
に変更します。testCompile("org.jmockit:jmockit:1.23")
→testCompile("org.jmockit:jmockit:1.30")
に変更します。domaGenRuntime("org.seasar.doma:doma-gen:2.8.0")
→domaGenRuntime("org.seasar.doma:doma-gen:2.15.0")
に変更します。
- buildscript の以下の点を変更します。
- それ以外に以下の点を変更します。
- compileJava.options.compilerArgs, compileTestGroovy.options.compilerArgs, compileTestJava.options.compilerArgs の3行を1行にして、
-options,-processing
を追加し、[compileJava, compileTestGroovy, compileTestJava]*.options*.compilerArgs = ['-Xlint:all,-options,-processing']
に変更します。 eclipse { ... }
を削除します。- dependencies の以下の点を変更します。
testCompileOnly("org.projectlombok:lombok:1.16.12")
を追加します。
- compileJava.options.compilerArgs, compileTestGroovy.options.compilerArgs, compileTestJava.options.compilerArgs の3行を1行にして、
■その2
sourceCompatibility = 1.8 targetCompatibility = 1.8 task wrapper(type: Wrapper) { gradleVersion = '2.13' }
task wrapper(type: Wrapper) { gradleVersion = '2.13' }
を追加します。
履歴
2017/02/11
初版発行。