【问题标题】:Could I use Java 6 Annotation Processors / JSR 269 to produce code for GWT in Maven?我可以使用 Java 6 Annotation Processors / JSR 269 在 Maven 中为 GWT 生成代码吗?
【发布时间】:2014-06-21 21:14:20
【问题描述】:

由于 GWT 严格使用 Java source 代码,并且 Annotation Processors / JSR 269 也生成 Java source 代码,所以在 Maven,让 javac 使用注释处理器处理文件,并将生成的 Java 源代码保存在某处,以便 GWT 可以自己使用它,从而节省复制注释处理器实现的工作在 GWT 生成器中

根据this question,假设答案仍然相关,最好使用maven-processor-plugin来处理注释。文档说您可以指定“outputDirectory”。 this question 说你应该使用 maven-resources-plugincopy-resources 目标来使 GWT 可以使用源代码。

假设所有这些都是正确的,我的问题是:你如何告诉 Maven,它应该使用 javac 编译代码,并运行其他 (maven-processor-plugin / maven-resources-plugin) 插件 在运行“GWT Maven 插件”之前? (或者,出于某种原因,这是否总是以这种顺序发生?)

【问题讨论】:

    标签: java maven gwt


    【解决方案1】:

    有很多方法可以配置您的 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

    【讨论】:

    • 您能否更具体地了解要使用的“阶段”? maven-compiler-plugin:compile 和 gwt-maven-plugin:compile 默认为同一阶段(编译),所以这是否意味着我必须告诉 gwt-maven-plugin:compile 运行“稍后”(什么时候?),以确保 maven-compiler-plugin:compile 或 build-helper-maven-plugin ...首先生成代码?
    • gwt:compile binds to the prepare-package phase by defaultprocessor:process binds by default to the generate-sources phase 所以没有“冲突”的风险。 build-helper:add-sources 第一个解决方案需要在 compiler:compilergwt:compile 之间运行;我可能会选择process-classes
    • 抱歉。当我搜索时,我偶然发现this page 说它绑定到“编译”,但没有注意到它是用于 gwt-maven-plugin 的 1.0 版本
    猜你喜欢
    • 2013-12-13
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2018-09-11
    • 1970-01-01
    相关资源
    最近更新 更多