Spring + AspectJ使用aspectj-maven-plugin编织java 8

我正在将我的项目从java 7迁移到java 8,我遇到的问题与使用aspectj-maven-plugin aspectj编织有关。

根据Haus文档,我可以使用在Java 6和7上运行的这个插件成功配置编织。 但问题是我还没有找到任何方法来使用(并找到)支持java 8的插件版本7.我在这里看到插件7增加了java 8支持,但找不到使用它的方法。

这是我需要的配置插件:

  org.codehaus.mojo aspectj-maven-plugin 1.7   1.8 1.8 1.8     compile test-compile     

我确认使用版本1.6的上述代码适用于Java 7,但尝试使用1.7版本没有运气。

你知道怎么运行在Java 8上运行的spring + aspectj的weaver吗?

2015年9月之前正式发布之前的解决方案

经过许多头痛和许多小时的努力,幸运的是我可以解决这个问题。 这是我做的:

要在Java 8中使用aspectj-maven-plugin ,我可以配置版本aspectj-maven-plugin 1.7(注意,aspectj-maven-plugin 1.6适用于Java 7)。

因此,maven插件配置需要:

   org.codehaus.mojo aspectj-maven-plugin 1.7-SNAPSHOT  1.8 1.8 1.8     compile test-compile     

顺便说一句,所需的aspectJjar子是:

   org.aspectj aspectjrt 1.8.1   org.springframework spring-aop 4.0.4.RELEASE   org.aspectj aspectjweaver 1.8.1  

我一直在努力的最重要的事情是安装了aspectj-maven-plugin 1.7 jar我必须手动完成,因为这些jar / pom文件还没有在maven repo上。

更新:因此,jar文件可以从Haus Jira链接下载(查看附件部分)。 如果Haus不再可用,您可以从我的github下载它:

https://github.com/fedepia/aspectj-maven-plugin-1.7

下载后将其复制到我的本地仓库我需要在目录中创建自己的 aspectj-maven-plugin-1.7-SNAPSHOT.pom文件:

 .m2\repository\org\codehaus\mojo\aspectj-maven-plugin\1.7-SNAPSHOT\aspectj-maven-plugin-1.7-SNAPSHOT.pom 

我基于1.6版的副本,但必须修改以下内容:

 1.7-SNAPSHOT  1.8.1 2.2.1 2.9  

这就是你去的地方,希望能帮到你。

更新:(添加更多细节,如Xtreme Biker在评论中提到的)

在我的上下文配置中,我有:

   

对于我的java方面,我使用:

 @Aspect public class NotificationAspect { ... @AfterThrowing(pointcut="@annotation(com.integration.core.meta.NotifyOnFailure)", throwing="ex") public void executeOnException(JoinPoint joinPoint, ExternalApiExecutionException ex) throws Throwable { ... 



最后官方插件自2015年9月发布

这是官方插件版本的答案更新。 为了将Java 8与AspectJ一起使用,可以在此链接上找到官方aspectj maven插件:

http://www.mojohaus.org/aspectj-maven-plugin/usage.html

这是maven存储库的链接:

http://mvnrepository.com/artifact/org.codehaus.mojo/aspectj-maven-plugin/1.8

正如文档所述,使用它的代码是:

  ...  ...  org.aspectj aspectjrt 1.8.7  ...  ...    org.codehaus.mojo aspectj-maven-plugin 1.8    compile  test-compile      ...   ...