目前我在eclipse中为一个项目生成带有注释处理器的文件
Right click on project > Run As > Maven Clean
Right click on project > Run As > Maven install
这是相当耗时的。如何设置 Eclipse 以使其在保存时运行注释处理器?
我有“自动构建”功能集,但它似乎忽略了注释处理器。顺便说一句,我正在使用带有“自动配置 JDT APT 激活”的 m2e apt 插件。
目前我在eclipse中为一个项目生成带有注释处理器的文件
Right click on project > Run As > Maven Clean
Right click on project > Run As > Maven install
这是相当耗时的。如何设置 Eclipse 以使其在保存时运行注释处理器?
我有“自动构建”功能集,但它似乎忽略了注释处理器。顺便说一句,我正在使用带有“自动配置 JDT APT 激活”的 m2e apt 插件。
我在 Eclipse 中为我的一些项目进行了注释处理;对我来说,它正在保存,我不必这样做mvn install
(它的工作方式与 Maven 不同,因为 Eclipse 运行它自己的编译器)。
我也在m2e-apt
为此使用插件。如上所述,Eclipse 运行自己的编译器;这意味着它的输出可能与 Maven 略有不同(当您“右键单击项目 > 运行方式 > Maven 清理/安装”时,您调用的是 Maven,而不是 Eclipse)。我之所以提到这一点,是因为您的处理器完全有可能在 Maven 中出现问题并且在 Eclipse 中无法工作(尽管大多数情况下它们确实产生相同的输出;我已经看到了一些差异,但非常小)。如果我是你,我会密切关注 Eclipse 的错误日志(因为那是注释处理错误被写入的地方)。
所以这是我的建议:
Java/Compiler
设置的图片(那里有一个需要激活的复选标记;没有它就无法工作)。pom.xml
意愿会有所帮助。特别是如果您有自定义配置maven-compiler-plugin
。其中一些配置由 解释m2e-apt
,例如编译器参数。.factorypath
. 这是m2e-apt
保存它扫描注释处理的 jar 列表的地方(你会在那里找到项目的所有 jar,即使它们实际上并不包含处理器;也就是说,除非你maven-compiler-plugin
被配置为只考虑一个处理器的具体列表)。如果包含您的处理器的 jar 不在 中.factorypath
,它将无法工作。m2e-apt
将简单地忽略您的注释处理器;我不知道为什么。在这种情况下,关闭您的注释处理器项目就足够了(您不必从工作区中删除它)。编辑:忘了说,如果您确实通过 Maven 运行注释处理(并且您调用 Maven 只是为了处理注释),那么mvn compile
就足够了。此外,您不需要单独运行它(先mvn clean
然后mvn compile
)。mvn clean compile
您可以使用;一次性运行它 它应该具有完全相同的效果。
确保您的 Java 项目设置(可通过右键单击 project 访问> Java compiler > Annotation processors
)启用注释处理并且设置符合您的期望。
对于 Maven 项目,m2e 应该根据 pom.xml 内容正确配置这些设置。但是,对于所有 Maven 插件来说,这并不是很顺利(有些会被支持“开箱即用”,有些则需要特定的插件......)。
我认为你需要一个触发器来运行 Maven 目标,所以:
您必须添加有效的 Maven 生命周期操作
由maven install plugin在本地自动部署的 jar 示例:
<build>
<!-- ... -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>jar</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<versionRange>[2.5.0,)</versionRange>
<goals>
<goal>install</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnConfiguration>true</runOnConfiguration>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
提示:每次更改源文件(GWT)时都会调用与Maven Project Builder 相关的内容,并作为警告:如果您已将测试包含在正常的 Maven 构建周期中,则安装通常包括测试