这是我对java 8的aspectj maven插件的配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.8</version>
<configuration>
<showWeaveInfo>true</showWeaveInfo>
<source>1.8</source>
<target>1.8</target>
<Xlint>ignore</Xlint>
<complianceLevel>1.8</complianceLevel>
<encoding>UTF-8</encoding>
<verbose>false</verbose>
<aspectLibraries>
<aspectLibrary>
<groupId>external project containing aspects</groupId>
<artifactId>external project containing 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>aspectjtools</artifactId>
<version>1.8.7</version>
</dependency>
</dependencies>
</plugin>
当我添加如下所示的surefire插件时,我能够在加载时编织方面。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>javaagent:${user.home}/.m2/repository/org/aspectj/aspectjweaver/1.8.7/aspectjweaver-1.8.7.jar</argLine>
</configuration>
</plugin>
为了确保我的方面被击中,我在其中添加了println语句。但是在尝试进行编译时编织时,它们并没有显示在控制台上。请帮我。我不知道我的配置中缺少什么。无法弄清楚为什么方面没有被击中。
答案 0 :(得分:0)
配置没有问题。问题是,我的方面被定义为抽象,其具体实现在aop.xml文件中。这就是他们在编译时没有加载的原因。所以我把它们作为具体方面,并且有效。