Java aspectj maven插件,声明如何编译
是否可以仅使用aspectj maven插件在项目中编译带有软化异常(例如:Java aspectj maven插件,声明如何编译,java,maven,aspectj,aspectj-maven-plugin,Java,Maven,Aspectj,Aspectj Maven Plugin,是否可以仅使用aspectj maven插件在项目中编译带有软化异常(例如:declare soft:Exception:execution(**.*);)方面的项目?我不能处理它。。。我仍然得到编译错误 unreported exception Exception; must be caught or declared to be thrown 因此,它是在不考虑方面的情况下编写的 我正在使用此命令编译: mvn clean aspectj:compile 我的pom.xml是: <
declare soft:Exception:execution(**.*);
)方面的项目?我不能处理它。。。我仍然得到编译错误
unreported exception Exception; must be caught or declared to be thrown
因此,它是在不考虑方面的情况下编写的
我正在使用此命令编译:
mvn clean aspectj:compile
我的pom.xml是:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>pl.group.id</groupId>
<artifactId>aop</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.7.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<complianceLevel>1.7</complianceLevel>
<source>1.7</source>
<target>1.7</target>
<aspectDirectory>src/main/aspect</aspectDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4.0.0
pl.group.id
aop
1.0.0
org.aspectj
aspectjrt
1.7.4
org.apache.maven.plugins
maven编译器插件
3.1
org.codehaus.mojo
aspectj maven插件
1.6
1.7
1.7
1.7
src/main/aspect
编译
测试编译
我做错了什么 实际上,我认为Maven编译器插件3.0和3.1中存在一个bug,因为对我来说,它与插件版本2.5.1一起工作。似乎增量编译被破坏了,或者相应的开关
useIncrementalComplation
在3.1中引入后,在某种程度上意外地颠倒了其含义。有趣的是,将其值设置为false
为我解决了这个问题。降级到2.5.1也可以。在这两种情况下,我都需要将AspectJ Maven插件的阶段更改为processsources
,如user@Gus链接的问题中所述
解决方案A:
4.0.0
de.scrum-master.stackoverflow
aspectj软异常
1.0-快照
UTF-8
1.8.0
带有declare soft的AspectJ示例
演示如何使用Maven的“declare soft”构建AspectJ项目
maven编译器插件
3.1
1.7
1.7
假的
org.codehaus.mojo
aspectj maven插件
1.6
真的
1.7
1.7
忽视
1.7
UTF-8
真的
过程源
编译
测试编译
org.aspectj
aspectjtools
${aspectj.version}
org.aspectj
aspectjrt
${aspectj.version}
运行时
解决方案B:
4.0.0
de.scrum-master.stackoverflow
aspectj软异常
1.0-快照
UTF-8
1.8.0
带有declare soft的AspectJ示例
演示如何使用Maven的“declare soft”构建AspectJ项目
maven编译器插件
2.5.1
1.7
1.7
org.codehaus.mojo
aspectj maven插件
1.6
真的
1.7
1.7
忽视
1.7
UTF-8
真的
过程源
编译
测试编译
org.aspectj
aspectjtools
${aspectj.version}
org.aspectj
aspectjrt
${aspectj.version}
运行时
这个问题有用吗?是的,这似乎是我需要的。如果您愿意,请将其作为答案发布:)我不知道我怎么会错过它…是的,更改maven aspectj插件的执行阶段解决了问题。不,执行阶段在所有情况下都是不够的,您还必须使用useIncrementalComplation=false
。我已经将我的示例Maven+AspectJ项目添加到和中,以便修复此问题。更新的链接是和,因为Codehaus不再存在,Maven编译器插件现在是一个Apache项目。