如何使用maven构建aspectj项目?
问题描述:
我在Eclipse IDE中创建了一个Aspectj项目,但我需要使用maven构建它。如何使用maven构建aspectj项目?
我有maven-aspectj插件,但不知道如何使用它。
答
下面是我遵循的步骤来实现这个工作。这给了我compile-time weaving。如果您需要其他策略,显然您需要另一种方法(例如运行时AOP代理的Spring AOP)。
-
添加的属性进行标准化您使用AspectJ版本:
<properties> <aspectj.version>1.7.2</aspectj.version> ...
-
添加运行时依赖:
<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj.version}</version> </dependency>
-
添加AspectJ的Maven插件:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.4</version> <executions> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj.version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> <configuration> <source>1.7</source> <target>1.7</target> <forceAjcCompile>true</forceAjcCompile> </configuration> </plugin>
我不确定forceAjcCompile
是否具有很大的意义,但是我已经看到了一些方面未被一致应用的情况。我在Eclipse上覆盖类文件或现在责备(现在),因此forceAjcCompile
。
其他的事情,我做的事:
- 添加
src/main/aspects
作为一个额外的源代码目录(build-helper-maven-plugin
插件)。只是因为它看起来不错在Eclipse - 添加
pluginExecution
/pluginExecutionFilter
为AspectJ的插件(lifecycle-mapping
plugin)并将其设置为execute
和runOnIncremental
,这样也和编码在Eclipse中测试时方面(再)施加(使用M2E)
这可以帮助你http://stackoverflow.com/questions/2610633/maven-compile-aspectj-project-containing-java-1-6-source – 2013-04-26 09:52:42
这也可以帮助你:[Maven的+ AspectJ的 - 所有步骤来配置它](http://stackoverflow.com/questions/12423965/maven-aspectj-all-steps-to-configure-it)。 – maba 2013-04-26 09:56:44
[Maven + AspectJ - 所有配置它的步骤]的可能重复(http://stackoverflow.com/questions/12423965/maven-aspectj-all-steps-to-configure-it) – 2017-03-29 16:12:27