繁体   English   中英

使用带有Datanucleus Maven插件的单独模块中的JDO Persistent类

[英]Using JDO Persistent classes from a separate module with datanucleus maven plugin

我有一个使用JDO可以持久保存到数据库的应用程序-我想使用第二个Java模块中的PersistenceCapable类。 尽管应用程序会编译一个简单的测试,但会出现错误:

“ com.hello.world.Foo”类不可持久。这意味着该类尚未增强,或者文件的增强版本不在CLASSPATH中(或被未增强的版本隐藏),或Meta-找不到该类的数据/注释。

好的,因此增强器插件未在第二个模块的类上运行。 我不确定在构建过程中需要如何将增强器指向该模块。

  • ParentProject
  • 第二个模块:com.hello.world.Foo

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM