【问题标题】:GWT multi-module app not compiling when dependent module is changed更改依赖模块时,GWT 多模块应用程序未编译
【发布时间】:2013-07-30 10:07:43
【问题描述】:

我有一个纯 Java 项目 (A) 和一个 GWT 项目 (B) 设置为多模块 GWT 项目,如 here 所述。

当我第一次运行mvn install 时,A 编译,然后 B 执行完整的 GWT 编译。但是,如果我更改 A 中的任何内容,则 B 不会像我预期的那样编译;我明白了

[INFO] <module> is up to date. GWT compilation skipped.

如果我启用&lt;force&gt;true&lt;/force,那么它会编译并且我可以看到我的更改。

如何让我的项目在依赖模块发生变化时自动编译,如果没有任何变化则跳过编译?

【问题讨论】:

    标签: gwt gwt-maven-plugin


    【解决方案1】:

    如果 gwt-maven-plugin 中的增量构建被破坏,我不会感到惊讶,就像几乎所有 Maven 插件一样:https://cwiki.apache.org/confluence/display/MAVEN/Incremental+Builds

    来源中有关于它的注释:https://github.com/gwt-maven-plugin/gwt-maven-plugin/blob/d6464421d9ceb815db2d594ae0bf2d9ca07a1643/src/main/java/org/codehaus/mojo/gwt/shell/CompileMojo.java#L390

    我倾向于同意,maven-compiler-plugin 以类似的方式被破坏,在这种情况下你应该做一个clean。或者,如果您知道更改与您的代码兼容并且不应该更改 maven-compiler-plugin 的输出,则通过在命令行上传递 -Dgwt.compiler.force 来强制 GWT 编译。

    【讨论】:

    • 嗯。我一直在寻找一种方法来使编译在核心项目 A 已更改时发生,如果没有,则不会。我在“后台”编译我的 GWT 项目作为 xcode 构建的一部分,并且希望仅在需要时编译所有内容。我想我的用例与大多数情况不一样。
    • 我认为我们都想要一个有效的增量构建,它只是在 Maven 中还没有(假设它可以修复,我对此表示怀疑)
    • @funkybro 取决于您如何编写构建文件:没有(官方)GWT 编译器任务,因此您使用&lt;java&gt; 任务来运行不会进行任何过时检查的编译器;您必须使用&lt;uptodate&gt; 任务或类似任务手动进行检查。
    猜你喜欢
    • 2021-04-06
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    相关资源
    最近更新 更多