[
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)