spring – 如何使用Maven忽略AspectJ编译器对某些方面的警告

如果您将AspectJ编译器与诸如Springs之类的Aspect库一起使用,并且您没有任何与特定Aspect相匹配的类,则可以获得:

[WARNING] advice defined in org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect has not been applied [Xlint:adviceDidNotMatch] 

但是对于这个特定的项目,我不需要这个方面以及其他一些方面.

您似乎可以使用-Xlint配置警告,但看起来您只能关闭不匹配的建议的所有警告(adviceDidNotMatch = ignore).我真正想要做的是排除某些方面,例如org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect.我似乎找不到排除方面的例子.

最佳答案
如果您准备列出要在某种白名单中使用的每个方面,您可以使用

ajc -xmlConfigured myConfig.xml ...

或者相应的AspectJ Maven Plugin parameter.为什么这个没有在ajc使用帮助中列出,我不知道.我之前从未使用过这个选项,但现在只是测试它并确认它有效.它应该是自1.6.9以来的ajc和自1.5以来的AspectJ Maven.

有关更多信息和示例XML文件,另请参见this answer.最小样本也列在here中.

请注意:必须明确指定选项和XML文件名.与LTW模式中的aop.xml不同,没有为CTW自动拾取魔术名称的文件. AspectJ维护者Andy Clement here提到了这个事实.

更新:我刚刚创建了一个bug ticket,因为参数没有记录.

转载注明原文:spring – 如何使用Maven忽略AspectJ编译器对某些方面的警告 - 代码日志