Каков наилучший способ настройки конфигурации компилятора проекта eclipse для аннотационных процессоров Java 6?
Мое решение - настроить файлы org.eclipse.jdt.apt.core.prefs
и factorypath
вручную. Это немного громоздко:
- Ссылка на процессорную банку в файле фабричного пути
- Конфигурирование выходного каталога процессора обработчика eclipse
(org.eclipse.jdt.apt.genSrcDir
вorg.eclipse.jdt.apt.core.prefs
) - Добавить выходной каталог процессора обработчика eclipse в качестве исходной папки
Одна из проблем заключается в том, что сгенерированные источники eclipse будут скомпилированы с помощью maven. Только maven clean compile
является надежным, так как он удаляет исходные файлы, созданные с помощью eclipse. (Исходные файлы, созданные Eclipse и javac, могут быть не синхронизированы.)
Есть ли лучшее решение для настройки maven без генерируемых исходных файлов eclipse в исходном пути maven?
<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>