2017-08-29 24 views
2

我有一个简单的GWT项目;我读过here是:新的GWT Maven插件(net.ltgt.gwt.maven):从src/main/resources(仅src/main/java)中没有拾取gwt.xml

注意这里有一个新的插件(原型和Eclipse的集成),一个 全新的开始是正确支持多模块项目,它不是 版本有界与GWT,支持倍数GWT版本和其他 修复程序,改进和最佳实践。这个插件现在被认为是旧版GWT maven插件(又名mojo GWT maven插件)和新版 被认为是新一代GWT maven插件(aka tbroyer GWT maven插件)。传统的Maven插件仍然受支持,但强烈建议您使用新插件用于新项目。

引用的插件是:

<groupId>net.ltgt.gwt.maven</groupId> 
<artifactId>gwt-maven-plugin</artifactId> 

我试图更新我的项目使用新的插件。我有以下问题:

  • 无模块自动发现;使用旧的Maven插件,不一定要指定moduleName;一个会自动发现给你(它对我来说工作正常)。你知道这个新插件是否有相同的功能?
  • 如果我将我的gwt.xml文件放在src/main/resources而不是src/main/java(这是Maven标准)下,找不到文件,并且出现“模块没有定义入口点”错误。这是预期的行为,这是什么原因?

所以我要么缺少一些配置,应该让我做我想做的事,或者插件是年轻的,仍然有一些缺失的东西。但是,如果问题出在插件本身上,那么为什么旧插件页面会说“传统maven插件仍支持,但强烈建议将新插件用于新项目。”?看起来这些人匆匆一下。

回答

1

插件已经有好几年了,尽管它是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,可能不存在),并可能会覆盖您的模块。这实际上是行为的一部分,在最终版本发布之前仍然可能会发生变化

+0

啊,谢谢澄清。但是,如果'module.gwt.xml'位于'src/main'中,那么需要将所有'source path'条目作为'gwt.xml'文件的子文件夹? (我的意思是,在旧的设置中,如果我有模块“com.example.ExampleModule”,我只能将'client'文件夹作为'com.example'的子文件夹,而我不能有'com。客户端)是插件以某种方式使用超级源功能来解决这个问题? – Andrei

+0

这完全是关于类路径中的路径,而不是文件系统,并且最终将文件重命名为由moduleName配置的适当位置。如果你的模块没有'',那么'client'和'shared'会自动为你添加。 –