AspectJ从依赖关系的编织不适用于项目

FiguringThisOut:

我有一个Java 8 Maven项目,该项目定义了一个自定义注释和一个方面。在该项目本身中运行测试代码时,它会将方面应用到带注释的类。然后,我将打包并安装项目。

然后,我将该依赖项引入一个新项目(非Spring)。尽管新项目确实引入了新的注释,但是该项目没有将方面应用到其类。

如何使用单个JAR定义注释和方面,并将其应用于Maven的所有项目中?

NándorElődBlack:

您需要在pom.xml的Aspectj-maven-plugin配置中将方面项目依赖项指定为方面库假设您的Aspect模块具有groupid:artifactid groupid:aspect-module您的pom.xml外观应与此类似:

<dependencies>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
    </dependency>
    <dependency>
        <groupId>groupid</groupId>
        <artifactId>aspect-module</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <executions>
                <execution>
                    <id>default-compile</id>
                    <phase>none</phase>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.9</version>
            <configuration>
                <aspectLibraries>
                    <aspectLibrary>
                        <groupId>groupid</groupId>
                        <artifactId>aspect-module</artifactId>
                    </aspectLibrary>
                </aspectLibraries>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

请注意,我要关闭,maven-compiler-plugin因为它们往往会使用覆盖彼此的输出aspectj-maven-plugin,而AspectJ编译器应该能够编译普通的Java文件并在同一步骤中进行编织,因此使用maven-compiler-plugin是多余的。如果您使用的是Eclipse + AJDT,则此Maven配置将更好地反映开发过程中IDE中发生的情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章