我可以使用Java 6 Annotation Processors / JSR 269在Maven中为GWT生成代码吗?

时间:2014-06-21 21:14:21

标签: java maven gwt

由于GWT严格依赖于Java source 代码,而Annotation Processors / JSR 269也生成了Java source 代码,所以 Maven中会有一种方法吗? / em>,让javac使用Annotation Processors处理文件,并在某处保存生成的 Java源代码,这样GWT就可以自己使用它,从而节省了再现Annotation Processors实现的工作在 GWT生成器中

根据this question,假设答案仍然相关,最好使用maven-processor-plugin来处理注释。文档说你可以指定" outputDirectory"。并且this question表示您应该使用 maven-resources-plugin copy-resources 目标来为GWT提供源代码。

假设所有这些都是正确的,我的问题是:你怎么告诉Maven,它应该用javac编译代码,然后运行另一个(maven-processor-plugin / maven-resources-plugin)插件在运行" GWT Maven插件" 之前? (或者,由于某种原因,总是按顺序发生?)

1 个答案:

答案 0 :(得分:2)

有许多方法可以配置Maven构建。以下是其中一些:

  • 让maven-compiler-plugin处理Java编译和注释处理,并将其配置为output the generated sources以及编译它们。然后使用build-helper-maven-plugin到add the generated sources directory to the project sources(或资源)以供gwt-maven-plugin稍后使用。这意味着build-helper-maven-plugin必须在compileprepare-package阶段之间运行。

  • 使用maven-processor-plugin运行注释处理器并输出生成的源,并确保它们是added to the project sources。然后使用<proc>none</proc>禁用maven-compiler-plugin的注释处理。

  • 使用maven-compiler-plugin两次:一次运行注释处理器(<proc>only</proc>),一次编译文件(<proc>none</proc>)。基本上,第一次执行相当于使用maven-processor-plugin。

您不需要使用resources:copy-resources