当前位置: 首页 > 知识库问答 >
问题:

AspectJ不在IntelliJ的maven项目中工作

闽涵蓄
2023-03-14

我有一个使用aspectJ进行审计maven项目。我在用Intellij想法。以下是我在pom文件中的插件配置:

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.7</version>
                <configuration>
                    <showWeaveInfo>true</showWeaveInfo>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <Xlint>ignore</Xlint>
                    <complianceLevel>${java.version}</complianceLevel>
                    <encoding>UTF-8</encoding>
                    <verbose>true</verbose>
                </configuration>
                <executions>
                    <execution>
                        <!-- IMPORTANT -->
                        <phase>process-sources</phase>
                        <goals>
                            <goal>compile</goal>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjtools</artifactId>
                        <version>1.8.10</version>
                    </dependency>
                </dependencies>
</plugin>
Join point 'method-execution(java.util.List com.test.getHistories(java.lang.String, java.lang.String))' in Type 'com.test.HistoryService' (HistoryService.java:18) advised by around advice from 'com.test.aspects.AuditLoggerAspect' (AuditLoggerAspect.java:88)

Join point 'method-execution(java.lang.String com.test.getString(int, java.lang.Object))' in Type 'com.test' (AspectTest.java:14) advised by around advice from 'com.test.AuditLoggerAspect' (AuditLoggerAspect.class(from AuditLoggerAspect.java))

我在Java应用程序中测试了这个方面和maven插件配置,它的工作很好。

共有1个答案

郜玉石
2023-03-14

当我清理和打包项目时,maven-compiler-pluginaspectj-compiler-plugin编译后重新编译项目。因此已编译的方面被移除。

我在maven-compiler-plugin中添加了以下配置来解决这个问题:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <!-- IMPORTANT -->
        <useIncrementalCompilation>false</useIncrementalCompilation>
    </configuration>
</plugin>
 类似资料:
  • 问题内容: 我正在尝试使AspectJ编织工作在一个简单的Maven项目中,并且不确定它出了什么问题:当我使用“ mvn exec:java”运行代码时,看不到预期的输出。 我确定代码可以正常工作,因为我在STS中尝试了相同的方法,在这里工作良好。我只是想让AspectJ在Maven项目中工作。 任何有关如何调试此类问题的提示将不胜感激。 外观文件与代码位于同一文件夹中: Java文件: 问题答案

  • 我有一个项目,它不是spring应用程序。我正在尝试在其中使用AspectJ注释。注释类是从我的另一个jar中引用的。我在下面提到了POM的插件部分。我的构建成功了,但是Maven的控制台输出从来没有提到任何关于AspectJ插件的内容,而且当我运行我的项目时,注释也不起作用。 我几个小时来一直想弄清楚出了什么问题,但还是搞不清楚。 这是Jar中定义的两个依赖项,我试图将它用作方面库。 [DEBU

  • null 有人经历过同样的问题吗?

  • 而不是常规的选项。 该模块有一个文件和自己的文件

  • 因此,我试图在IntelliJ中使用项目配置设置中的spring选项启动一个新的web项目,但当我最终获得项目设置时,似乎我创建的任何新控制器都被忽略了,即使我对它们进行了注释。@RequestMapping似乎从未被映射。我所能访问的只是位于web目录根目录中的文件。 在无法使其工作之后,我切换到Gradle,以便可以导入一些额外的库来测试我的项目。我的gradle文件如下所示: 是否有某种配置

  • 问题内容: 似乎必须在使用某些特定于Eclipse的配置的“ AspectJ项目”或“ Maven项目”之间进行选择,然后尝试正确获取AspectJ的XML配置。 是否缺少某些Eclipse功能,或者是否有可以用作开始的“预制” /教程项目? PS:我正在使用Eclipse 3.7(Indigo)。 问题答案: 这是我用来学习AspectJ的pom文件。