[ 
https://issues.apache.org/jira/browse/MCOMPILER-272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17391709#comment-17391709
 ] 

James Howe commented on MCOMPILER-272:
--------------------------------------

Still not fixed in 3.8.1. It looks like it's also broken with a single 
{{<annotationProcessorPaths>}} entry. Perhaps because there are other 
annotation processed picked up from regular dependencies?

For example, trying to use QueryDSL in a Spring Boot project:
{quote}Fatal error compiling: java.lang.NoClassDefFoundError: 
javax/persistence/Entity: javax.persistence.Entity
{quote}
{code:xml}
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <annotationProcessorPaths>
      <path>
        <groupId>com.querydsl</groupId>
        <artifactId>querydsl-apt</artifactId>
        <classifier>jpa</classifier>
        <version>${querydsl.version}</version>
      </path>
    </annotationProcessorPaths>
  </configuration>
</plugin>
{code}

> When annotationProcessorPaths has multiple entries, only the transitive 
> dependencies of the first entry are added
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: MCOMPILER-272
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-272
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 3.5.1, 3.6.0, 3.6.1, 3.6.2, 3.7.0, 3.8.0
>            Reporter: Stefan Ocke
>            Priority: Major
>
> 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



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to