我有一个Java 8 Maven项目,该项目定义了一个自定义注释和一个方面。在该项目本身中运行测试代码时,它会将方面应用到带注释的类。然后,我将打包并安装项目。
然后,我将该依赖项引入一个新项目(非Spring)。尽管新项目确实引入了新的注释,但是该项目没有将方面应用到其类。
如何使用单个JAR定义注释和方面,并将其应用于Maven的所有项目中?
您需要在pom.xml的Aspectj-maven-plugin配置中将方面项目依赖项指定为方面库。假设您的Aspect模块具有groupid:artifactid groupid:aspect-module
。您的pom.xml
外观应与此类似:
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>groupid</groupId>
<artifactId>aspect-module</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.9</version>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>groupid</groupId>
<artifactId>aspect-module</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
请注意,我要关闭,maven-compiler-plugin
因为它们往往会使用覆盖彼此的输出aspectj-maven-plugin
,而AspectJ编译器应该能够编译普通的Java文件并在同一步骤中进行编织,因此使用maven-compiler-plugin是多余的。如果您使用的是Eclipse + AJDT,则此Maven配置将更好地反映开发过程中IDE中发生的情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句