Maven 如何使用openJPA在构建时从单独的jar增强类?
我正在尝试使用maven pluginMaven 如何使用openJPA在构建时从单独的jar增强类?,maven,jpa,openjpa,openjpa-maven-plugin,Maven,Jpa,Openjpa,Openjpa Maven Plugin,我正在尝试使用maven pluginopenjpa maven plugin来增强来自另一个Jar的实体类,不幸的是,我没有找到正确的方法来实现 我有一个来自模块MyDomain的类MyPojo,打包在jarMyDomain.jar中: public class MyPojo { private Long id; ... } 在我的第二个项目MyJpapackagingMyJpa.jar,它取决于模块mydomain.jar,Maven被配置为使用构建时OpenJPA增强器,具有以下功
openjpa maven plugin
来增强来自另一个Jar的实体类,不幸的是,我没有找到正确的方法来实现
我有一个来自模块MyDomain
的类MyPojo
,打包在jarMyDomain.jar中:
public class MyPojo {
private Long id;
...
}
在我的第二个项目MyJpa
packagingMyJpa.jar
,它取决于模块mydomain.jar
,Maven被配置为使用构建时OpenJPA增强器,具有以下功能:
<plugin>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<configuration>
<includes>**/entity/*.class</includes>
<addDefaultConstructor>true</addDefaultConstructor>
<enforcePropertyRestrictions>true</enforcePropertyRestrictions>
</configuration>
<executions>
<execution>
<id>enhancer</id>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
</plugin>
使用类似于以下内容的orm.xml:
<entity class="MyPojo" access="FIELD">
<table name="MYPOJO"/>
<attributes>
<id name="id">
<generated-value strategy="AUTO"/>
</id>
</attributes>
</entity>
运行mvn install
会出现以下错误:
此配置不允许运行时优化,但以下列出的类型在生成时或类加载时未使用javaagent进行增强:
当我将类MyPojo
移动到项目MyJpa
(而不是项目MyDomain)中时,它会工作
所以我的问题是:为了能够在构建时增强来自外部Jar的类MyPojo
,我需要配置什么
为了能够在构建时增强来自外部Jar的类MyPojo,我需要配置什么
如果我正确理解了您的问题,您就无法在构建时增强jar内部的类。如果您想以这种方式增强,您需要取消类的限制,增强,然后重新jar。是的。那么,有没有一种方法可以用maven的方式实现呢?我不知道,即使另一个JAR是在同一个maven构建中作为EAR文件中的模块构建的(并且是自己增强的),我也不知道?
<entity class="MyPojo" access="FIELD">
<table name="MYPOJO"/>
<attributes>
<id name="id">
<generated-value strategy="AUTO"/>
</id>
</attributes>
</entity>