Jaki jest najlepszy sposób konfiguracji konfiguracji kompilatora Eclipse dla procesorów adnotacyjnych Java 6?Konfiguracja przetwarzania adnotacji Java 6 dla kompilatora Eclipse z maven
Moje rozwiązanie polega na ręcznym skonfigurowaniu plików org.eclipse.jdt.apt.core.prefs
i factorypath
. Jest to nieco kłopotliwe:
- referencyjny słoik procesora w pliku factorypath
- Konfiguracja procesor adnotacji eclipse katalogu wyjściowego
(org.eclipse.jdt.apt.genSrcDir
nieruchomość worg.eclipse.jdt.apt.core.prefs
) - Dodaj katalog wyjściowy procesor zaćmienie adnotacji w folderze źródłowym
Jednym z problemów jest to, że generowane przez eclipse źródła będą kompilowane z mavenem. Tylko maven clean compile
jest niezawodny, ponieważ usuwa pliki źródłowe generowane przez eclipse. (Pliki źródłowe generowane przez Eclipse i javac mogą być niezsynchronizowane.)
Czy istnieje lepsze rozwiązanie do konfigurowania maven bez plików źródłowych generowanych przez eclipse na ścieżce źródłowej?
<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>
To już nie jest otwarte, zostało zaimplementowane w wersji 2.2. – bmargulies