Google app engine Aspect Maven插件';覆盖';已经增强的Datanucleus类
我正在使用aspectj maven插件和appengine maven插件完成的datanucleus增强。 如果我在appengine maven插件之前定义了aspectj maven插件,一切看起来都正常,但是当我在aspectj maven插件之前定义了appengine maven插件时,aspectj maven插件似乎覆盖了appengine maven插件所做的类增强 当然,我可以在appengine maven插件之前定义aspectj maven插件,但我想知道是否有更好的复杂方法来解决这个问题 这是我的配置:Google app engine Aspect Maven插件';覆盖';已经增强的Datanucleus类,google-app-engine,maven,maven-3,aspectj,datanucleus,Google App Engine,Maven,Maven 3,Aspectj,Datanucleus,我正在使用aspectj maven插件和appengine maven插件完成的datanucleus增强。 如果我在appengine maven插件之前定义了aspectj maven插件,一切看起来都正常,但是当我在aspectj maven插件之前定义了appengine maven插件时,aspectj maven插件似乎覆盖了appengine maven插件所做的类增强 当然,我可以在appengine maven插件之前定义aspectj maven插件,但我想知道是否有更好的
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
<outxml>true</outxml>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${org.aspectj.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${com.google.appengine.version}</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
org.codehaus.mojo
aspectj maven插件
1.4
org.springframework
春季方面
真的
${java.version}
${java.version}
org.aspectj
aspectjrt
${org.aspectj.version}
org.aspectj
aspectjtools
${org.aspectj.version}
编译
测试编译
com.google.appengine
appengine maven插件
${com.google.appengine.version}
编译
增强
您需要使用过负荷才能使其正常工作。通常,AspectJ假定它是在类文件上运行的唯一字节码转换器。因此,在编织之前,它将始终返回到原始文件(未转换的类文件)。当您有类似datanucleus的功能时,这种假设不再成立。过度编织是一种在已编织的类上编织的选项
详情如下:
要启用,请使用-Xset:overWeaving=true
选项启用它。然而,看看博客帖子下面的评论,我可以看到maven不喜欢-Xset:
选项。因此,建议使用一个.lst文件,并将-X选项添加到该文件中
如果这不起作用,我建议通过电子邮件发送aspectj用户邮件列表