Ответ 1
Решение до официального выпуска до сентября 2015 г.
После многих головных болей и многих часов борьбы с этим, к счастью, я мог решить эту проблему. Вот что я сделал:
Чтобы использовать aspectj-maven-plugin
с Java 8, я мог бы настроить версию aspectj-maven-plugin 1.7 (обратите внимание, что aspectj-maven-plugin 1.6 работает для Java 7).
Итак, конфигурация плагина maven должна быть:
<!-- AspectJ configuration -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.7-SNAPSHOT</version>
<configuration>
<complianceLevel>1.8</complianceLevel>
<source>1.8</source>
<target>1.8</target>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
Кстати, нужны аксессуарные jars:
<!-- Spring AOP + AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.1</version>
</dependency>
Самое главное, с чем я боролся, это то, что для установки флекса aspectj-maven-plugin 1.7 я должен был сделать это вручную, так как эти файлы 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, но должен был изменить следующий контент:
<version>1.7-SNAPSHOT</version>
<properties>
<aspectjVersion>1.8.1</aspectjVersion>
<mavenVersion>2.2.1</mavenVersion>
<changesPluginVersion>2.9</changesPluginVersion>
</properties>
Что вы здесь все, надеюсь помочь.
Обновление: (добавление более подробной информации в комментарии Xtreme Biker в комментариях)
В моей конфигурации конфигурации у меня есть:
<aop:aspectj-autoproxy />
<bean id="notificationAspect" class="com.integration.core.aspect.NotificationAspect" factory-method="aspectOf" scope="singleton"></bean>
Для моего аспекта 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 года
Это обновление для ответа с официальным выпуском плагина. Чтобы использовать 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
Как указано в документации, код для его использования:
<project>
...
<dependencies>
...
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.7</version>
</dependency>
...
</dependencies>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<goals>
<goal>compile</goal> <!-- use this goal to weave all your main classes -->
<goal>test-compile</goal> <!-- use this goal to weave all your test classes -->
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
<build>
...
</project>