jOOQのパッケージ構成が少し変わりますよ〜
先日gradleでjOOQの依存を以下のように更新しました。
依存名 | アップデート前 | アップデート後 |
---|---|---|
jOOQ | v3.10.7 | v3.11.9 |
gradle-jooq-plugin | v2.0.11 | v3.0.2 |
gradle-jooq-pluginがメジャーバージョンアップしてたので絶対動かないだろうなあと思ったら、案の定動きませんでした。
ちょっと修正しただけで動いたので、メモっておきます。
jOOQをv3.11系にした際に起きるエラー
tree:database tree$ ./generate-jooq.sh > Task :generateExampleJooqSchemaSource FAILED 1 28, 2019 9:59:52 午前 org.jooq.tools.JooqLogger info 情報: Initialising properties : /Users/tree/github/kotlin-spring-boot-jooq-liquibase-thymeleaf-example/database/build/tmp/generateExampleJooqSchemaSource/config.xml 1 28, 2019 9:59:53 午前 org.jooq.tools.JooqLogger warn 警告: Type not found : Your configured org.jooq.util type was not found. Do note that in jOOQ 3.11, jOOQ-meta and jOOQ-codegen packages have been renamed. New package names are: - org.jooq.meta - org.jooq.meta.extensions - org.jooq.codegen - org.jooq.codegen.maven See https://github.com/jOOQ/jOOQ/issues/7419 for details 1 28, 2019 9:59:53 午前 org.jooq.tools.JooqLogger error 重大: Cannot read /Users/tree/github/kotlin-spring-boot-jooq-liquibase-thymeleaf-example/database/build/tmp/generateExampleJooqSchemaSource/config.xml. Error : Your configured org.jooq.util type was not found. Do note that in jOOQ 3.11, jOOQ-meta and jOOQ-codegen packages have been renamed. New package names are: - org.jooq.meta - org.jooq.meta.extensions - org.jooq.codegen - org.jooq.codegen.maven See https://github.com/jOOQ/jOOQ/issues/7419 for details java.lang.ClassNotFoundException: Your configured org.jooq.util type was not found. Do note that in jOOQ 3.11, jOOQ-meta and jOOQ-codegen packages have been renamed. New package names are: - org.jooq.meta - org.jooq.meta.extensions - org.jooq.codegen - org.jooq.codegen.maven See https://github.com/jOOQ/jOOQ/issues/7419 for details at org.jooq.codegen.GenerationTool.loadClass(GenerationTool.java:857) at org.jooq.codegen.GenerationTool.run(GenerationTool.java:331) at org.jooq.codegen.GenerationTool.generate(GenerationTool.java:222) at org.jooq.codegen.GenerationTool.main(GenerationTool.java:194) Caused by: java.lang.ClassNotFoundException: org.jooq.util.DefaultGenerator at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.jooq.codegen.GenerationTool.loadClass(GenerationTool.java:821) ... 3 more
エラーに丁寧に何が起きているか書いてますね。これは親切です。
対応
変更前パッケージ | 変更後パッケージ |
---|---|
org.jooq.util.DefaultGenerator | org.jooq.codegen.DefaultGenerator |
org.jooq.util.DefaultGeneratorStrategy | org.jooq.codegen.DefaultGeneratorStrategy |
org.jooq.util.mysql.MySQLDatabase | org.jooq.meta.mysql.MySQLDatabase |
上記のようにパッケージがutilからcodegen・metaと細分化されました。org.jooq.meta.mysql.MySQLDatabase は postgres等に適宜変更しましょう。
この修正だけで基本的に動かくかと思います。