我有一個問題,使用jooq codegen與JPADatabase。我已經通過這個post並作出相應的更改。我的項目包含子模塊,實體類位於域模塊中。我有一個依賴域的商業模塊。所以我在biz模塊的pom.xml中有這個構建配置。jooq codegen與JPADatabase不工作
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<version>3.9.1</version>
<!-- The plugin should hook into the generate goal -->
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-meta-extensions</artifactId>
<version>3.9.1</version>
</dependency>
</dependencies>
<configuration>
<!-- Generator parameters -->
<generator>
<database>
<name>org.jooq.util.jpa.JPADatabase</name>
<properties>
<!-- A comma separated list of Java packages, that contain your entities -->
<property>
<key>packages</key>
<value>com.yaswanth.domain.entity</value>
</property>
</properties>
</database>
<target>
<packageName>com.yaswanth.domain.entity.jooq</packageName>
<directory>target/generated-sources/jooq</directory>
</target>
</generator>
</configuration>
</plugin>
</plugins>
</build>
插件失敗,實體上出現ClassNotFoundException。這是堆棧跟蹤。
Caused by: org.jooq.exception.DataAccessException: Error while exporting schema
at org.jooq.util.jpa.JPADatabase.create0(JPADatabase.java:147)
at org.jooq.util.AbstractDatabase.create(AbstractDatabase.java:221)
at org.jooq.util.AbstractDatabase.create(AbstractDatabase.java:213)
at org.jooq.util.AbstractDatabase.getDialect(AbstractDatabase.java:195)
at org.jooq.util.AbstractGenerator.logDatabaseParameters(AbstractGenerator.java:129)
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:243)
at org.jooq.util.GenerationTool.run(GenerationTool.java:610)
at org.jooq.util.GenerationTool.generate(GenerationTool.java:199)
at org.jooq.util.maven.Plugin.execute(Plugin.java:188)
... 22 more
Caused by: java.lang.ClassNotFoundException: com.walmartlabs.sc.domain.entity.ItemNames
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.jooq.util.jpa.JPADatabase.create0(JPADatabase.java:135)
... 30 more
域模塊類已經生成,但仍然插件說ClassNotFoundException。我正在使用jooq 3.9.1版本。誰能告訴我我在這裏做錯了什麼?
更新:盧卡斯埃德的答案是正確的答案,並接受一個。我自己對這個問題的回答對我來說很合適,因爲我在maven回購中緩存了特定的版本。我的回答是錯誤的。
你把你的實體放在使用jOOQ代碼生成器的模塊的依賴關係中嗎?請參閱:http://stackoverflow.com/q/42968155/521799 –
是的。域模塊是發生代碼生成的商業模塊中的依賴項。 – yaswanth