[英]Using JDO Persistent classes from a separate module with datanucleus maven plugin
我有一个使用JDO可以持久保存到数据库的应用程序-我想使用第二个Java模块中的PersistenceCapable类。 尽管应用程序会编译一个简单的测试,但会出现错误:
“ com.hello.world.Foo”类不可持久。这意味着该类尚未增强,或者文件的增强版本不在CLASSPATH中(或被未增强的版本隐藏),或Meta-找不到该类的数据/注释。
好的,因此增强器插件未在第二个模块的类上运行。 我不确定在构建过程中需要如何将增强器指向该模块。
ParentProject pom.xml及其相关部分-问题是如何将增强器指向包含我的持久性类的第二个模块?
<dependencies>
<dependency>
<groupId>Second Module</groupId>
<artifactId>Second Module</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.jdo</groupId>
<artifactId>jdo-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>[3.2.0, 3.2.99)</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jdo</artifactId>
<version>[3.2.0, 3.2.99)</version>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-rdbms</artifactId>
<version>[3.2.0, 3.2.99)</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-maven-plugin</artifactId>
<version>3.3.0-release</version>
<configuration>
<api>JDO</api>
<props>${basedir}/datanucleus.properties</props>
<log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration>
<verbose>true</verbose>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
知道了-我不得不在问题中添加完全相同的pom.xml配置到第二个模块,并进行mvn install
以在编译父模块之前增强这些类。 同时从事Jetty和GAE。 我错误地认为,父模块会增强模块依赖关系中包含的类。
感谢您的帮助DataNucleus!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.