2013-04-26 182 views
1

我在Eclipse IDE中创建了一个Aspectj项目,但我需要使用maven构建它。如何使用maven构建aspectj项目?

我有maven-aspectj插件,但不知道如何使用它。

+0

这可以帮助你http://stackoverflow.com/questions/2610633/maven-compile-aspectj-project-containing-java-1-6-source – 2013-04-26 09:52:42

+0

这也可以帮助你:[Maven的+ AspectJ的 - 所有步骤来配置它](http://stackoverflow.com/questions/12423965/maven-aspectj-all-steps-to-configure-it)。 – maba 2013-04-26 09:56:44

+0

[Maven + AspectJ - 所有配置它的步骤]的可能重复(http://stackoverflow.com/questions/12423965/maven-aspectj-all-steps-to-configure-it) – 2017-03-29 16:12:27

回答

2

下面是我遵循的步骤来实现这个工作。这给了我compile-time weaving。如果您需要其他策略,显然您需要另一种方法(例如运行时AOP代理的Spring AOP)。

  1. 添加的属性进行标准化您使用AspectJ版本:

    <properties> 
        <aspectj.version>1.7.2</aspectj.version> 
        ... 
    
  2. 添加运行时依赖:

    <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjrt</artifactId> 
        <version>${aspectj.version}</version> 
    </dependency> 
    
  3. 添加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

其他的事情,我做的事:

  1. 添加src/main/aspects作为一个额外的源代码目录(build-helper-maven-plugin插件)。只是因为它看起来不错在Eclipse
  2. 添加pluginExecution/pluginExecutionFilter为AspectJ的插件(lifecycle-mapping plugin)并将其设置为executerunOnIncremental,这样也和编码在Eclipse中测试时方面(再)施加(使用M2E)