我有一个简单的GWT项目;我在这里读到:
注意 有一个新的插件(原型和日食集成),一个 正确支持多模块项目的全新开始,它不是 版本以GWT为界,支持多个GWT版本和其他 修复、改进和最佳实践。现在考虑此插件 传统的GWT maven插件(又名mojo GWT maven插件)和新的 一个被认为是新一代GWT maven插件(又名tbroyer GWT 马文插件)。仍然支持旧的 maven 插件,但它是 强烈建议将新项目用于新项目。
引用的插件是:
<groupId>net.ltgt.gwt.maven</groupId>
<artifactId>gwt-maven-plugin</artifactId>
我正在尝试更新我的项目以使用新插件。我有以下问题:
- 没有模块自动发现;使用旧的Maven插件,指定moduleName不是强制性的;一个会自动为你发现(它对我来说工作得很好)。您知道新插件是否有等效功能吗?
- 如果我将
gwt.xml
文件放在src/main/resources
而不是src/main/java
(这是Maven标准)下,则找不到该文件,并且出现"模块未定义入口点"错误。这是预期的行为,有什么原因吗?
所以我要么缺少一些应该允许我做我想做的事情的配置,要么插件还很年轻,仍然缺少一些东西。但是,如果问题出在插件本身,那么为什么旧插件页面显示"仍然支持旧版 maven 插件,但强烈建议将新插件用于新项目。看来这些家伙有点匆忙了。
尽管它是RC版本控制,但该插件已经使用了几年并且可以生产(免责声明:插件作者在这里;版本控制就是这样不提交向前兼容的配置,几个版本已经稳定了)
您是对的,您必须显式配置模块名称(和短名称,用于过时检查)。另一种方法是将模块放在src/main/module.gwt.xml
上,它将被重命名(并附加rename-to=""
)到适当的名称和路径。
你按照 https://tbroyer.github.io/gwt-maven-plugin/migrating.html 设置<skipModule>true</skipModule>
了吗?否则,会生成一个虚拟模块(实际上来自src/main/module.gwt.xml
,可能不存在)并可能覆盖您的模块。这实际上是行为的一部分,在最终发布之前仍可能更改。