为Java 6注释处理器设置Eclipse项目编译器配置的最佳方法是什么?
我的解决方案是手动设置org.eclipse.jdt.apt.core.prefs
和factorypath
文件。这有点麻烦:
(org.eclipse.jdt.apt.genSrcDir
在属性org.eclipse.jdt.apt.core.prefs
)一个问题是,Eclipse生成的源将使用maven进行编译。Only maven clean compile
是可靠的,因为它删除了Eclipse生成的源文件。(Eclipse和javac生成的源文件可能不同步。)
有没有更好的解决方案来配置Maven,而不会在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>
更新:您可以尝试使用apt-maven-plugin。当前,它提供了三个目标:
您可以按以下方式配置目标以使其作为构建的一部分运行:
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<goals>
<goal>process</goal>
<goal>test-process</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
默认情况下,输出目录设置为${project.build.directory}/generated-sources/apt
,
有一个针对编译器插件的开放Jira,用于添加对Java
6的APT支持,如果您希望在以后的版本中看到它,可以投票支持。
我正在使用EclipseIndigo,有一个Maven项目,它使用注释处理器生成代码。 我已经在项目属性中设置了注释处理(在Eclipse中),但理想情况下,我更希望这个IDE设置由Maven管理,这样我就可以轻松地与同事共享它。 如有任何建议,将不胜感激
我已经通过使用Java 8的命令提示符编译成功地运行了用于类级保留注释的注释处理器。 但是,当我尝试在eclipse中配置注释处理器并尝试使用选项运行它时,它没有生效。 我已将包含自定义注释处理器类文件的Jar文件包含到
null 代码(步骤1和2): 实际上,第一个任务执行良好,并为注释处理器实现编译.class文件。它在第二个任务停止。 Ant说: Java 1.6 Ant 1.8.2
该链接包含在错误404s中(https://developer.android.com/r/tools/annotation-processor-error-message.html),因此没有帮助。 我已经在android studio设置中启用了注释处理,并将添加到我的注释处理器选项中。我还尝试将、和添加到处理器FQ名称中,但这也没有帮助。 这些是我添加到dependecies下的默认buil
我正在尝试创建一个自定义注释,例如,确保字段或方法既是又是,如果字段或方法既不是又不是,则会生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 正如所暗示的,我不知道如何生成编译时错误。Processor的文档清楚地表明我不应该抛出异常, 如果处理器抛出未捕获的异常,该工具可能会停止其他活动注释处理器。 它接着描述了当提出错误条件时会发生什么,现在是如何提出错误条
问题内容: 我正在尝试创建一个自定义批注,例如,以确保字段或方法为and ,并且如果该字段或方法不为and ,则将生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 如所示,我不知道如何生成编译时错误。Processor 的文档清楚地表明,我不应该抛出异常, 如果处理器抛出未捕获的异常,则该工具可能会停止其他活动的注释处理器。 它继续描述了引发错误条件时会发生