AspectJ的Maven插件与注解处理器 – 源代码生成两次

huangapple 未分类评论44阅读模式
英文:

AspectJ maven plugin with annotation processor - sources are generated twice

问题

我在将AspectJ编译器插件与生成源代码的注解处理器组合时遇到了一些奇怪的行为。

我有**项目A**,这是主项目,其中包含带有注解的类。

我有**项目B**,这是依赖项目,其中包含方面类和注解处理器。

理想情况下,应该是在编译项目A时,使用项目B中的注解处理器从项目A的带注解类生成的源代码将被编译并保存在`target/generated-sources/annotations/...`目录中。

实际发生的是,在编译项目A时,源代码会生成在`target/generated-sources/annotations/...`目录中,然后在项目A的根目录中再次生成一次。

**项目A**的pom.xml:

(代码部分已省略)

**项目B**的pom.xml:

(代码部分已省略)

我找到了一个解决方法,即在AspectJ编译器的`<configuration>`下添加`<proc>none</proc>`,但这只是一个临时解决方法。我是否遗漏了什么?

我还发现了[这个问题][1],似乎描述了类似的问题。

[1]: https://stackoverflow.com/questions/28022190/maven-aspectj-plugin-calls-the-jpa-model-generator-again
英文:

I'm experiencing some strange behaviour when combining the AspectJ compiler plugin with an annotation processor that generates sources.

I have Project A, the main project with annotated classes.

I have Project B, the dependency project with aspect classes and the annotation processor.

Ideally, what should happen, is upon compilation of project A, sources generated from annotated classes in Project A, using the annotation processor in project B should be compiled and saved in target/generated-sources/annotations/...

What actually happens is, upon compilation of project A, sources are generated in target/generated-sources/annotations/... and then generated a second time at the root of project A.

Project A pom.xml

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
         xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

    &lt;groupId&gt;ar.com.glamit.carriersShipmentRequest&lt;/groupId&gt;
    &lt;artifactId&gt;carriersShipmentRequest&lt;/artifactId&gt;
    &lt;version&gt;1.0&lt;/version&gt;
    &lt;name&gt;carriersShipmentRequest&lt;/name&gt;
    &lt;url&gt;http://www.glamit.com.ar&lt;/url&gt;

    &lt;properties&gt;
        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
        &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt;
        &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt;
        &lt;aspectj.version&gt;1.8.7&lt;/aspectj.version&gt;
        &lt;aspectjcompiler.version&gt;1.8&lt;/aspectjcompiler.version&gt;
    &lt;/properties&gt;

    &lt;repositories&gt;
        &lt;repository&gt;
            &lt;id&gt;glamit-repo&lt;/id&gt;
            &lt;name&gt;Glamit Repo&lt;/name&gt;
            &lt;url&gt;http://nexus.glamit.com.ar/repository/maven-releases/&lt;/url&gt;
        &lt;/repository&gt;
    &lt;/repositories&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
            &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt;
            &lt;version&gt;1.8.7&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;ar.com.glamit&lt;/groupId&gt;
            &lt;artifactId&gt;GlamitBootstrapper&lt;/artifactId&gt;
            &lt;version&gt;2.1&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;commons-io&lt;/groupId&gt;
            &lt;artifactId&gt;commons-io&lt;/artifactId&gt;
            &lt;version&gt;1.3.2&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.commons&lt;/groupId&gt;
            &lt;artifactId&gt;commons-csv&lt;/artifactId&gt;
            &lt;version&gt;1.7&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;junit&lt;/groupId&gt;
            &lt;artifactId&gt;junit&lt;/artifactId&gt;
            &lt;version&gt;4.12&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;net.sourceforge.pmd&lt;/groupId&gt;
            &lt;artifactId&gt;pmd-core&lt;/artifactId&gt;
            &lt;version&gt;6.20.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;net.sourceforge.pmd&lt;/groupId&gt;
            &lt;artifactId&gt;pmd-java&lt;/artifactId&gt;
            &lt;version&gt;6.20.0&lt;/version&gt;
        &lt;/dependency&gt;

        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.pdfbox&lt;/groupId&gt;
            &lt;artifactId&gt;pdfbox&lt;/artifactId&gt;
            &lt;version&gt;2.0.1&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.pdfbox&lt;/groupId&gt;
            &lt;artifactId&gt;fontbox&lt;/artifactId&gt;
            &lt;version&gt;2.0.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.pdfbox&lt;/groupId&gt;
            &lt;artifactId&gt;jempbox&lt;/artifactId&gt;
            &lt;version&gt;1.8.11&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.pdfbox&lt;/groupId&gt;
            &lt;artifactId&gt;xmpbox&lt;/artifactId&gt;
            &lt;version&gt;2.0.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.pdfbox&lt;/groupId&gt;
            &lt;artifactId&gt;preflight&lt;/artifactId&gt;
            &lt;version&gt;2.0.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.pdfbox&lt;/groupId&gt;
            &lt;artifactId&gt;pdfbox-tools&lt;/artifactId&gt;
            &lt;version&gt;2.0.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;net.sf.barcode4j&lt;/groupId&gt;
            &lt;artifactId&gt;barcode4j&lt;/artifactId&gt;
            &lt;version&gt;2.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.google.zxing&lt;/groupId&gt;
            &lt;artifactId&gt;core&lt;/artifactId&gt;
            &lt;version&gt;3.4.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.google.zxing&lt;/groupId&gt;
            &lt;artifactId&gt;javase&lt;/artifactId&gt;
            &lt;version&gt;3.4.0&lt;/version&gt;
        &lt;/dependency&gt;
    &lt;/dependencies&gt;
    &lt;build&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.flywaydb&lt;/groupId&gt;
                &lt;artifactId&gt;flyway-maven-plugin&lt;/artifactId&gt;
                &lt;version&gt;6.0.3&lt;/version&gt;
                &lt;configuration&gt;
                    &lt;configFiles&gt;src/main/resources/flyway.conf&lt;/configFiles&gt;
                &lt;/configuration&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;migrate&lt;/goal&gt;
                        &lt;/goals&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
            &lt;/plugin&gt;

            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-assembly-plugin&lt;/artifactId&gt;
                &lt;version&gt;3.3.0&lt;/version&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;phase&gt;package&lt;/phase&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;single&lt;/goal&gt;
                        &lt;/goals&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
                &lt;configuration&gt;
                    &lt;descriptorRefs&gt;
                        &lt;descriptorRef&gt;jar-with-dependencies&lt;/descriptorRef&gt;
                    &lt;/descriptorRefs&gt;
                    &lt;finalName&gt;carriers-shipmentrequest&lt;/finalName&gt;
                    &lt;appendAssemblyId&gt;false&lt;/appendAssemblyId&gt;
                    &lt;archive&gt;
                        &lt;manifest&gt;
                            &lt;addClasspath&gt;true&lt;/addClasspath&gt;
                            &lt;mainClass&gt;ar.com.glamit.carriersShipmentRequest.Entry&lt;/mainClass&gt;
                        &lt;/manifest&gt;
                    &lt;/archive&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;

            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-pmd-plugin&lt;/artifactId&gt;
                &lt;version&gt;3.12.0&lt;/version&gt;
                &lt;configuration&gt;
                    &lt;targetJdk&gt;1.8&lt;/targetJdk&gt;
                    &lt;failOnViolation&gt;true&lt;/failOnViolation&gt;
                    &lt;printFailingErrors&gt;true&lt;/printFailingErrors&gt;
                    &lt;rulesets&gt;
                        &lt;ruleset&gt;${pom.basedir}/pmd-exclude.xml&lt;/ruleset&gt;
                    &lt;/rulesets&gt;
                    &lt;excludeRoots&gt;
                        &lt;excludeRoot&gt;target/generated-sources/&lt;/excludeRoot&gt;
                    &lt;/excludeRoots&gt;
                &lt;/configuration&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;check&lt;/goal&gt;
                        &lt;/goals&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
            &lt;/plugin&gt;

            &lt;plugin&gt;
                &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
                &lt;artifactId&gt;aspectj-maven-plugin&lt;/artifactId&gt;
                &lt;version&gt;1.8&lt;/version&gt;
                &lt;configuration&gt;
                    &lt;aspectLibraries&gt;
                        &lt;aspectLibrary&gt;
                            &lt;groupId&gt;ar.com.glamit&lt;/groupId&gt;
                            &lt;artifactId&gt;GlamitBootstrapper&lt;/artifactId&gt;
                        &lt;/aspectLibrary&gt;
                    &lt;/aspectLibraries&gt;
                    &lt;complianceLevel&gt;1.8&lt;/complianceLevel&gt;
                    &lt;source&gt;8&lt;/source&gt;
                    &lt;target&gt;8&lt;/target&gt;
                    &lt;Xlint&gt;ignore&lt;/Xlint&gt;
                &lt;/configuration&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;phase&gt;process-sources&lt;/phase&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;compile&lt;/goal&gt;
                            &lt;goal&gt;test-compile&lt;/goal&gt;
                        &lt;/goals&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
                &lt;dependencies&gt;
                    &lt;dependency&gt;
                        &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
                        &lt;artifactId&gt;aspectjtools&lt;/artifactId&gt;
                        &lt;version&gt;${aspectj.version}&lt;/version&gt;
                    &lt;/dependency&gt;
                &lt;/dependencies&gt;
            &lt;/plugin&gt;

        &lt;/plugins&gt;
        &lt;pluginManagement&gt;&lt;!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --&gt;
            &lt;plugins&gt;
                &lt;!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-clean-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.1.0&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-resources-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.0.2&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.8.0&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.22.1&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.0.2&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-install-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.5.2&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-deploy-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.8.2&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-site-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.7.1&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-project-info-reports-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.0.0&lt;/version&gt;
                &lt;/plugin&gt;
            &lt;/plugins&gt;
        &lt;/pluginManagement&gt;
    &lt;/build&gt;
&lt;/project&gt;

Project B pom.xml

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;
         xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
         xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

    &lt;groupId&gt;ar.com.glamit&lt;/groupId&gt;
    &lt;artifactId&gt;GlamitBootstrapper&lt;/artifactId&gt;
    &lt;version&gt;2.1&lt;/version&gt;

    &lt;properties&gt;
        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
        &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt;
        &lt;maven.compiler.target&gt;1.8&lt;/maven.compiler.target&gt;
        &lt;aspectj.version&gt;1.8.7&lt;/aspectj.version&gt;
        &lt;aspectjcompiler.version&gt;1.8&lt;/aspectjcompiler.version&gt;
    &lt;/properties&gt;

    &lt;repositories&gt;
        &lt;repository&gt;
            &lt;id&gt;glamit-repo&lt;/id&gt;
            &lt;name&gt;Glamit Repo&lt;/name&gt;
            &lt;url&gt;http://nexus.glamit.com.ar/repository/maven-releases/&lt;/url&gt;
        &lt;/repository&gt;
    &lt;/repositories&gt;

    &lt;dependencies&gt;

        &lt;dependency&gt;
            &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
            &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt;
        &lt;/dependency&gt;

        &lt;dependency&gt;
            &lt;groupId&gt;com.google.auto.service&lt;/groupId&gt;
            &lt;artifactId&gt;auto-service&lt;/artifactId&gt;
            &lt;version&gt;1.0-rc7&lt;/version&gt;
            &lt;optional&gt;true&lt;/optional&gt;
        &lt;/dependency&gt;

        &lt;dependency&gt;
            &lt;groupId&gt;org.reflections&lt;/groupId&gt;
            &lt;artifactId&gt;reflections&lt;/artifactId&gt;
            &lt;version&gt;0.9.12&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.google.inject&lt;/groupId&gt;
            &lt;artifactId&gt;guice&lt;/artifactId&gt;
            &lt;version&gt;4.2.3&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.google.googlejavaformat&lt;/groupId&gt;
            &lt;artifactId&gt;google-java-format&lt;/artifactId&gt;
            &lt;version&gt;1.7&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
            &lt;artifactId&gt;log4j-api&lt;/artifactId&gt;
            &lt;version&gt;2.13.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
            &lt;artifactId&gt;log4j-core&lt;/artifactId&gt;
            &lt;version&gt;2.13.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;ar.com.glamit&lt;/groupId&gt;
            &lt;artifactId&gt;glamitrest&lt;/artifactId&gt;
            &lt;version&gt;1.0.2&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;ar.com.glamit&lt;/groupId&gt;
            &lt;artifactId&gt;glamitworkers&lt;/artifactId&gt;
            &lt;version&gt;1.0.4&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;ar.com.glamit&lt;/groupId&gt;
            &lt;artifactId&gt;glamitlogger&lt;/artifactId&gt;
            &lt;version&gt;1.0.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.amazonaws&lt;/groupId&gt;
            &lt;artifactId&gt;aws-lambda-java-core&lt;/artifactId&gt;
            &lt;version&gt;1.2.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;commons-configuration&lt;/groupId&gt;
            &lt;artifactId&gt;commons-configuration&lt;/artifactId&gt;
            &lt;version&gt;1.6&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;mysql&lt;/groupId&gt;
            &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
            &lt;version&gt;8.0.9-rc&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;commons-io&lt;/groupId&gt;
            &lt;artifactId&gt;commons-io&lt;/artifactId&gt;
            &lt;version&gt;1.3.2&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;junit&lt;/groupId&gt;
            &lt;artifactId&gt;junit&lt;/artifactId&gt;
            &lt;version&gt;4.12&lt;/version&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.mockito&lt;/groupId&gt;
            &lt;artifactId&gt;mockito-all&lt;/artifactId&gt;
            &lt;version&gt;1.10.19&lt;/version&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;commons-cli&lt;/groupId&gt;
            &lt;artifactId&gt;commons-cli&lt;/artifactId&gt;
            &lt;version&gt;1.4&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;net.sourceforge.pmd&lt;/groupId&gt;
            &lt;artifactId&gt;pmd-core&lt;/artifactId&gt;
            &lt;version&gt;6.20.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;net.sourceforge.pmd&lt;/groupId&gt;
            &lt;artifactId&gt;pmd-java&lt;/artifactId&gt;
            &lt;version&gt;6.20.0&lt;/version&gt;
        &lt;/dependency&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;javax.mail&lt;/groupId&gt;
            &lt;artifactId&gt;mail&lt;/artifactId&gt;
            &lt;version&gt;1.4.7&lt;/version&gt;
        &lt;/dependency&gt;
    &lt;/dependencies&gt;

    &lt;build&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
                &lt;artifactId&gt;aspectj-maven-plugin&lt;/artifactId&gt;
                &lt;version&gt;1.8&lt;/version&gt;
                &lt;configuration&gt;
                    &lt;source&gt;8&lt;/source&gt;
                    &lt;target&gt;8&lt;/target&gt;
                    &lt;Xlint&gt;ignore&lt;/Xlint&gt;
                    &lt;complianceLevel&gt;1.8&lt;/complianceLevel&gt;
                    &lt;encoding&gt;${project.build.sourceEncoding}&lt;/encoding&gt;
                &lt;/configuration&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;phase&gt;process-sources&lt;/phase&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;compile&lt;/goal&gt;
                            &lt;goal&gt;test-compile&lt;/goal&gt;
                        &lt;/goals&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
                &lt;dependencies&gt;
                    &lt;dependency&gt;
                        &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
                        &lt;artifactId&gt;aspectjtools&lt;/artifactId&gt;
                        &lt;version&gt;${aspectj.version}&lt;/version&gt;
                    &lt;/dependency&gt;
                &lt;/dependencies&gt;
            &lt;/plugin&gt;

            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-pmd-plugin&lt;/artifactId&gt;
                &lt;version&gt;3.12.0&lt;/version&gt;
                &lt;configuration&gt;
                    &lt;targetJdk&gt;1.8&lt;/targetJdk&gt;
                    &lt;failOnViolation&gt;true&lt;/failOnViolation&gt;
                    &lt;printFailingErrors&gt;true&lt;/printFailingErrors&gt;
                    &lt;rulesets&gt;
                        &lt;ruleset&gt;${pom.basedir}/pmd-exclude.xml&lt;/ruleset&gt;
                    &lt;/rulesets&gt;
                    &lt;excludeRoots&gt;
                        &lt;excludeRoot&gt;target/generated-sources/&lt;/excludeRoot&gt;
                    &lt;/excludeRoots&gt;
                &lt;/configuration&gt;
                &lt;executions&gt;
                    &lt;execution&gt;
                        &lt;goals&gt;
                            &lt;goal&gt;check&lt;/goal&gt;
                        &lt;/goals&gt;
                    &lt;/execution&gt;
                &lt;/executions&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
        &lt;pluginManagement&gt;
            &lt;plugins&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-clean-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.1.0&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-resources-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.0.2&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.22.1&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;
                    &lt;version&gt;3.0.2&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-install-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.5.2&lt;/version&gt;
                &lt;/plugin&gt;
                &lt;plugin&gt;
                    &lt;artifactId&gt;maven-deploy-plugin&lt;/artifactId&gt;
                    &lt;version&gt;2.8.2&lt;/version&gt;
                &lt;/plugin&gt;
            &lt;/plugins&gt;
        &lt;/pluginManagement&gt;
    &lt;/build&gt;

    &lt;dependencyManagement&gt;
        &lt;dependencies&gt;
            &lt;dependency&gt;
                &lt;groupId&gt;org.aspectj&lt;/groupId&gt;
                &lt;artifactId&gt;aspectjrt&lt;/artifactId&gt;
                &lt;version&gt;${aspectj.version}&lt;/version&gt;
                &lt;scope&gt;runtime&lt;/scope&gt;
            &lt;/dependency&gt;
        &lt;/dependencies&gt;
    &lt;/dependencyManagement&gt;
&lt;/project&gt;

A workaround I found for this is to add &lt;proc&gt;none&lt;/proc&gt; under &lt;configuration&gt; of the AspectJ compiler, but it's just a workaround. Am I missing something?

I've also found this question that seems to describe a similar issue.

huangapple
  • 本文由 发表于 2020年7月27日 01:38:14
  • 转载请务必保留本文链接:https://java.coder-hub.com/63103565.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定