1

我在 Eclipse ide 中创建了一个 Aspectj 项目,但我需要使用 maven 构建它。

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

4

1 回答 1

2

以下是我为使其正常工作所遵循的步骤。这给了我编译时编织。如果您需要其他策略,显然您需要另一种方法(例如用于运行时 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. 为 AspectJ 插件 ( plugin )添加pluginExecution/并将其设置为and ,以便在 Eclipse 中编码和测试时(使用 m2e)也(重新)应用方面pluginExecutionFilterlifecycle-mappingexecuterunOnIncremental
于 2013-04-27T04:29:20.060 回答