Uploaded image for project: 'Maven Compiler Plugin'
  1. Maven Compiler Plugin
  2. MCOMPILER-272

When annotationProcessorPaths has multiple entries, only the transitive dependencies of the first entry are added

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.5.1, 3.6.0, 3.6.1, 3.6.2, 3.7.0, 3.8.0
    • 3.9.0
    • None

    Description

      I have multiple path elements in annotationProcessorPaths. The expected result is, that all of them together with their transitive dependencies are passed to javac as processorpath parameter.
      However, when running maven in debug mode, I can see, that only for the first path element, the transitive dependencies are passed to javac. For the other path elements they are missing.

      I have no easy example to reproduce yet, but I did some debugging:

      In http://svn.apache.org/viewvc/maven/plugins/tags/maven-compiler-plugin-3.5.1/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java?view=markup#l1378 , the first artifact is set as the root artifact for the ArtifactResolutionRequest. The other artifacts are just added as "artifactDependencies".
      After some more debugging into DefaultArtifactResolver, it seem to me, that only for the root artifact, the transitive dependencies are resolved. The other artifacts are just added without their dependencies. See also here: http://grepcode.com/file/repo1.maven.org/maven2/org.apache.maven/maven-compat/3.3.3/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java#442

      Attachments

        Issue Links

          Activity

            People

              rfscholte Robert Scholte
              stefanoc Stefan Ocke
              Votes:
              4 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: