zak*_*ine 6 java gwt maven gwt-maven-plugin
显然,GWT有两个maven插件:
这个:
<groupId>net.ltgt.gwt.maven</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>1.0-rc-6</version>
Run Code Online (Sandbox Code Playgroud)
还有这个:
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.8.0-SNAPSHOT</version>
Run Code Online (Sandbox Code Playgroud)
有什么区别 ?
Tho*_*yer 12
免责声明:我是该org.codehaus.mojo
插件的前维护者,也是该插件的作者net.ltgt.gwt.maven
.
插件与使用Maven的GWT有很多不同的方法; 我将尝试总结这里最重要的一些.
首先,org.codehaus.mojo
它与特定版本的GWT相关联; 这意味着每当发布新版本的GWT以解决差异时,都必须发布新版本的插件.另一方面,它使用Maven文档(mvn gwt:help
)等公开所有GWT选项/标志作为配置属性.当插件中修复了一个错误时,这也意味着您必须更新您的GWT版本以匹配下一个插件版本使用的版本; 虽然你真的应该总是使用最新的GWT版本,但由于其他依赖项与新版本等不兼容,可能无法快速更新,因此你可能处于"版本冲突地狱".
该net.ltgt.gwt.maven
插件旨在与2个最新版本的GWT兼容,但可能与更多版本兼容(它只是没有经过测试/保证); 这意味着您可以独立于GWT更新插件.
该org.codehaus.mojo
插件带来了gwt-dev
和gwt-user
(和gwt-servlet
!)依赖项,如果不是严格相同的话,可能会导致与项目依赖项的依赖项发生冲突; 另外,由于Maven的工作方式,如果你在不同的情况下使用你自己的分叉版本的GWT,你就不能将它们从插件的依赖项中排除groupId
(你必须使用com.google.gwt
groupId
或者插入插件来改变它的依赖性).
该net.ltgt.gwt.maven
插件附带自定义packaging
s gwt-lib
和gwt-app
.关于如何使用Maven完成GWT应用程序的观点非常明确:将客户端和服务器(和共享)代码分离到单独的Maven模块中(这实际上遵循Maven Way™:如果您需要单独的类路径,那么您需要使用不同的Maven模块,每个都有他们的依赖).你当然不会被迫使用这些包装,他们只是通过设置适当的默认值和约定来在POM中削减相当多的配置.
最后,由于上述关于"项目布局"的观点,该net.ltgt.gwt.maven
插件旨在支持多模块(又名反应堆)构建,与org.codehaus.mojo
插件相反,例如,gwt:run
必须在两个客户端的项目上运行和服务器代码"直播"; 导致多模块构建中的糟糕黑客,例如必须使用mvn install
所有依赖模块(因为gwt:run
无法在聚合器模块上调用),并使用build-helper-maven-plugin
从其他模块引入客户端源以获得无缝的开发体验.
您可以在gwt-maven-archetypes(免责声明:我是作者)中查看此提交中插件之间的差异,该插件从插件切换到插件.org.codehaus.mojo
net.ltgt.gwt.maven
归档时间: |
|
查看次数: |
1075 次 |
最近记录: |