Google app engine Aspect Maven插件';覆盖';已经增强的Datanucleus类

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插件,但我想知道是否有更好的

我正在使用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用户邮件列表