尝试将我的app(spring + jpa)转换为基于@Configuration的spring注释,并摆脱spring app context xml和persistence.xml。所有好的除了openjpa-maven-plugin 2.2.2我用于构建时间类增强工作没有persistence.xml抛出错误:
[错误]无法执行目标 org.apache.openjpa:openjpa-maven-plugin:2.2.2:增强(增强) project myapp:目标的执行增强器 org.apache.openjpa:openjpa-maven-plugin:2.2.2:增强失败: 无法配置MetaDataFactory (conf.newMetaDataFactoryInstance()返回null)。这可能意味着 没有找到配置属性。确保你有一个 META-INF / persistence.xml文件,它在类路径中可用, 或者您用于配置的属性文件是 可用。如果您使用的是Ant,请参阅或 任务的嵌套元素的属性。 如果您的OpenJPA分发罐损坏,也可能发生这种情况 如果你的安全政策过于严格。
插件的配置是:
<configuration>
<includes>**/business/model/*.class</includes>
<addDefaultConstructor>true</addDefaultConstructor>
<enforcePropertyRestrictions>true</enforcePropertyRestrictions>
</configuration>
然而,它的工作原理是persistence.xml,但只包含空持久性单元(我有3个):
<persistence-unit name="pu1" transaction-type="RESOURCE_LOCAL">
</persistence-unit>
<persistence-unit name="pu2" transaction-type="RESOURCE_LOCAL">
</persistence-unit>
<persistence-unit name="pu3" transaction-type="RESOURCE_LOCAL">
</persistence-unit>
所以openjpa-maven-plugin可能从中获得的唯一信息是持久性单元名称,如果它实际上甚至需要它们。
如何在没有persistence.xml的情况下实现构建时openjpa类增强?