2013-04-26 218 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)