gpt4 book ai didi

java - 如何使用maven构建aspectj项目?

转载 作者:行者123 更新时间:2023-11-30 04:24:45 32 4
gpt4 key购买 nike

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

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

最佳答案

以下是我为实现此目的所遵循的步骤。这给了我compile-time weaving 。如果您需要其他策略,显然您需要其他方法(例如 Spring AOP 用于运行时 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 插件 ( lifecycle-mapping plugin ) 添加 pluginExecution/pluginExecutionFilter 并将其设置为 executerunOnIncremental,以便在 Eclipse 中编码和测试(使用 m2e)时(重新)应用方面

关于java - 如何使用maven构建aspectj项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16233526/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com