IntelliJ ajc:如何从aspectj-maven-plugin 工作中排除?

Gui*_*ume 4 java aspectj intellij-idea maven aspectj-maven-plugin

我在 IntelliJ 中使用了 ajc 编译器,以及 aspectj-maven-plugin,我在其中声明了以下排除项:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.8</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <excludes>
                    <exclude>**/EmployeeAccessAspect.java</exclude>
                </excludes>
                <complianceLevel>1.8</complianceLevel>
                <showWeaveInfo>true</showWeaveInfo>
                <verbose>true</verbose>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

当我使用 编译时mvn compile,一切都很好,并且EmployeeAccessAspect方面被正确忽略。

但是,如果我Make是 IntelliJ 中的项目,它只会编织它找到的所有方面(并完全忽略 maven 排除项)。

我总是可以破解 ajc 编译器选项或方面路径来实现我想要的,但是如果我出于某种原因必须排除一个方面,它会让我改变两个地方。

有什么办法可以让maven插件和ajc编译同步吗?我正在使用 IntelliJ 15。

kri*_*aex 6

我可以确认

  • 它在 IDEA 中不起作用,
  • JetBrains至少从 2013 年就知道了
  • 我已经评论过这个问题
  • 您想要的在 Eclipse 中确实可以工作(AspectJ 是一个 Eclipse 项目,因此那里的 IDE 支持要好得多)。

除了它是一个已知问题,它不被视为错误,而是 JetBrains 的一项新功能(请参阅此处的票证类型)之外,我无话可说。