如何使用Java7和maven实现aspectj编译时编织
我有一个项目,目前使用Java6和编译时编织。 我们使用以下pom启用spring特性和我们自己的特性:如何使用Java7和maven实现aspectj编译时编织,java,maven,aspectj,Java,Maven,Aspectj,我有一个项目,目前使用Java6和编译时编织。 我们使用以下pom启用spring特性和我们自己的特性: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.4</version> <configuration>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<showWeaveInfo>true</showWeaveInfo>
<source>1.6</source>
<target>1.6</target>
<Xlint>ignore</Xlint>
<complianceLevel>1.6</complianceLevel>
<encoding>UTF-8</encoding>
<verbose>false</verbose>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
org.codehaus.mojo
aspectj maven插件
1.4
真的
1.6
1.6
忽视
1.6
UTF-8
假的
org.springframework
春季方面
编译
测试编译
我尝试过各种配置,但无法使其与Java7一起工作。
如果有人可以共享一个正在工作的pom或Lead,那就太好了。在迁移到aspectjtools的1.7.0版之后,它工作得很好。此外,您需要将版本参数作为
-1.7
传递给编译器(使用target
参数会导致问题)。如果有人需要更多详细信息,请留下评论,我将添加更多特定于配置的信息。您可以从这里举一个工作示例:
以下是pom中的工作插件定义(编译器版本=“1.7”,aspectj.version=“1.7.0”)
org.codehaus.mojo
aspectj maven插件
1.4
真的
${compiler.version}
${compiler.version}
忽视
${compiler.version}
UTF-8
假的
org.springframework
春季方面
编译
测试编译
org.aspectj
aspectjrt
${aspectj.version}
org.aspectj
aspectjtools
${aspectj.version}
您可以发布pom.xml吗?在1.7版本,当我执行一个干净的构建时,我得到:org.aspectj.weaver.BCException:格式错误的org.aspectj.weaver.Declare属性(长度:45)org.aspectj.weaver.BCException:错误的类型签名。但如果我第二次调用mvn compile,它会生成,但后来的增强会给出一个“在分支目标处需要一个stackmap框架”。我还在研究这个问题。我刚转到最新发布的aspectj 1.7.0和java 1.7,还遇到了一个错误,即“在分支目标处需要一个stackmap帧”。您曾经解决过这个问题吗?您是否指定了正确的aspectj和编译器版本?我每天都用,效果很好。您需要pom的哪一部分(我将添加缺少的部分)?谢谢。你的插件配置对我帮助很大。在我的例子中,它在aspectj 1.6.12版上运行,没有任何问题。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<showWeaveInfo>true</showWeaveInfo>
<source>${compiler.version}</source>
<target>${compiler.version}</target>
<Xlint>ignore</Xlint>
<complianceLevel>${compiler.version}</complianceLevel>
<encoding>UTF-8</encoding>
<verbose>false</verbose>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>