我有一个 Maven 项目,它分为几个模块。
proj-parent
+- proj-campaign
+- proj-core
+- proj-data
+- proj-rawimport
+- proj-ui
+- proj-ui-core
数据模块包含大部分 JPA 实体类,已配置为使用 maven-processor-plugin 创建元模型类:
<build>
<plugins>
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<outputDirectory>src/generated</outputDirectory>
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
<compilerArguments>-ApersistenceXml="src/main/resources/META-INF/persistence-data.xml"</compilerArguments>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>4.3.4.Final</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
这一切都很好,并且类是自动生成的,并在运行时填充了实际值。
但是,我也有包含一些 jpa 实体类的 rawimport 项目。到目前为止,它还没有被任何其他项目引用,但现在 ui 模块需要它。所以我以与数据项目相同的方式连接它,希望它能正常工作:
- 将 rawimport 项目添加为父项中的托管依赖项(似乎还可以)
- 添加了元模型生成器,与上面的数据配置一样,但指向不同的 persistence.xml(似乎还可以,生成的类也可以)
- 在ui项目中引用了rawimport项目。(这一步会导致问题)
但是现在,当我启动系统时,数据项目中的属性不再填充,导致到处都是NullPointerExceptions。
我试过清除我的 maven 存储库,命令行清理和重建,eclipse maven 项目更新.. 没有任何帮助。
我正在尝试搜索调试级别的启动日志记录,但找不到任何错误,它似乎只是默默地不填充它们。
有谁知道我应该寻找什么,或者没有创建属性的典型原因?在将模块添加到现有项目时,有人遇到过类似的问题吗?我希望我不必合并 rawimport 和 data 模块,因为这是最后的手段。
使用的版本:
<wicket.version>6.11.0</wicket.version>
<hibernate.version>4.3.8.Final</hibernate.version>
<mysql.version>5.1.34</mysql.version>
<c3p0.version>0.9.5</c3p0.version>
<spring.version>4.1.4.RELEASE</spring.version>
<hsql.version>2.3.2</hsql.version>
<jetty.version>7.6.3.v20120416</jetty.version>
提前致谢。
====更新===== 为那些有类似问题的人更新:我已经将这两个项目混合在一起了。问题是因为我在两个项目中都有一个事务管理器和持久性数据,具有相同的 bean 名称,所以一个会开始正确填充元模型,然后在中途被另一个没有完成工作的替换。
由于让 2 个实体经理查看相同数据的复杂性,最好(对于我的情况)将它们组合在一起。