Wie kann die Konfiguration des Eclipse-Projektcompilers für Java 6-Annotationsprozessoren am besten eingerichtet werden?Java 6-Annotationsverarbeitungskonfiguration für Eclipse-Compiler mit Maven konfigurieren
Meine Lösung besteht darin, die Dateien org.eclipse.jdt.apt.core.prefs
und factorypath
manuell einzurichten. Dies ist ein wenig umständlich:
- Referenz der jar-Prozessor in der factorypath Datei
- Konfigurieren Sie die Eclipse-Annotation Prozessor Ausgabeverzeichnis
(org.eclipse.jdt.apt.genSrcDir
Eigenschaft inorg.eclipse.jdt.apt.core.prefs
) - Fügen Sie den Prozessor Ausgabeverzeichnis eclipse Annotation als Quellordner
Ein Problem ist, dass Eclipse generierte Quellen mit Maven kompiliert werden. Nur maven clean compile
ist zuverlässig, da es die von der Eclipse erzeugten Quelldateien entfernt. (Eclipse und javac erzeugte Quelldateien könnten nicht synchron sein.)
Gibt es eine bessere Lösung, um maven ohne eclipse-generierte Quelldateien am maven-Quellpfad zu konfigurieren?
<project>
<properties>
<eclipse.generated.src>${project.build.directory}/eclipse</eclipse.generated.src>
</properties>
<build>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals> <goal>add-source</goal> </goals>
<configuration>
<sources>
<source>${eclipse.generated.src}</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalConfig>
<file> <name>.factorypath</name>
<content><![CDATA[<factorypath>
<factorypathentry kind="VARJAR" id="M2_REPO/processor/processor.jar" enabled="true" runInBatchMode="false"/>
</factorypath>
]]> </content>
</file>
<file>
<name>.settings/org.eclipse.jdt.apt.core.prefs</name>
<content><![CDATA[
eclipse.preferences.version=1
org.eclipse.jdt.apt.aptEnabled=true
org.eclipse.jdt.apt.genSrcDir=${eclipse.generated.src}
org.eclipse.jdt.apt.reconcileEnabled=true
]]> </content>
</file>
</additionalConfig>
</configuration>
</plugin>
</plugins>
</build>
</project>
Es ist nicht mehr offen, es wurde in 2.2 implementiert. – bmargulies