[ https://issues.apache.org/jira/browse/MCOMPILER-271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15786054#comment-15786054 ]
Andreas Gudian commented on MCOMPILER-271: ------------------------------------------ I just played around a bit. and changing the build-section of the pom in the example to this helps (removing the apt-maven-plugin): {code:xml} <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <compilerArgument>-parameters</compilerArgument> <annotationProcessorPaths> <dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-apt</artifactId> <version>${querydsl.version}</version> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</version> </dependency> </annotationProcessorPaths> <annotationProcessors> <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> </annotationProcessors> </configuration> </plugin> </plugins> </build> {code} I'm pretty sure this has nothing to do with the incremental compilation stuff. It is defintely a side-effect of the changes I made for MCOMPILER-240. What happens is that if the path configured with {{generatedSourcesDirectory}} ( (which defaults to {{target/generated-sources/annotations}}) or the equivalent for {{test-compile}} is part of the project's compile-source-roots, then that directory will be ignored for compilation, as the annotation processing done by the compilation step itself already takes care of compiling the sources it generates (regardless of whether {{annotationProcessorPaths}} is used or not). So the assumption is that the path configured with {{generatedSourcesDirectory}} would only contain sources that are already compiled. So it doesn't seem like something we can nicely fix in the compiler-plugin. I don't think we should try to determine if any files within the generated-sources directory were generated by the compiler-plugins compilation call and thus are already compiled, or if they have been placed at that location by another plugin execution. And as pointed out, the other alternative to use only the compiler-plugin or to change the output path for the apt-plugin to a directory that doesn't overlap with the (configured or defaulted) {{generatedSourcesDirectory}} of the compiler-plugin. I always do that with the compiler-plugin only, as there's usually no need to split APT source generation from compilation. I suggest closing this as Wont-Fix, with the explanation above. Is that okay with you, [~oliver.gierke]? > APT generated classes not visible during test compilation > --------------------------------------------------------- > > Key: MCOMPILER-271 > URL: https://issues.apache.org/jira/browse/MCOMPILER-271 > Project: Maven Compiler Plugin > Issue Type: Bug > Affects Versions: 3.5.1 > Reporter: Oliver Gierke > Assignee: Andreas Gudian > Attachments: compiler-plugin-bug.zip > > > After upgrading the Maven Compiler Plugin to 3.5.1, I see compilation errors > with builds that work on 3.5. The symptom is that classes generated by an APT > plugin are not visible on the test class path when > {{target/generated-sources/annotations}} is used as output folder. > I'll attach a sample project that shows the failure if you run {{mvn clean > test-compile}}. > Two things make the project work: > 1. Downgrade to 3.5 (which makes me think any of the fixes made for > MCOMPILER-240 has to do with this). > 2. Change {{annotations}} segment of the output path to something other than > {{annotations}}. > Especially the latter puzzles me as it seems like this path is explicitly not > added to the test compile classpath. -- This message was sent by Atlassian JIRA (v6.3.4#6332)