net.ltgt.gwt.maven和org.codehaus.mojo GWT Maven插件之间有什么区别?

扎卡里亚胺

显然,GWT有两个Maven插件:

这个:

<groupId>net.ltgt.gwt.maven</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>1.0-rc-6</version>

还有这个:

<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.8.0-SNAPSHOT</version>

有什么区别 ?

托马斯·布罗耶

免责声明:我是该org.codehaus.mojo插件的前维护者,也是该插件的作者net.ltgt.gwt.maven

插件在将GWT与Maven结合使用时有非常不同的方法。我将在这里尝试总结最重要的内容。

首先,org.codehaus.mojo绑定到GWT的特定版本;这意味着每当发布GWT的新版本以解决差异时,都必须发布该插件的新版本。另一方面,它通过Maven文档(mvn gwt:help)等公开了所有GWT选项/标志作为配置属性当插件中的错误已修复时,这还意味着您必须更新GWT版本以与下一插件版本使用的版本匹配。虽然您确实应该始终使用最新的GWT版本,但由于其他依赖项与新版本不兼容等原因,可能无法快速更新,因此您可能处于“版本冲突地狱”状态。
net.ltgt.gwt.maven插件旨在与GWT的2个最新版本兼容,但可能与更多版本兼容(只是未经测试/保证);这意味着您可以独立于GWT更新插件。
org.codehaus.mojo插件带有gwt-devgwt-user(和gwt-servlet!)依赖项,如果不完全相同,则可能与项目依赖项产生冲突。同样,由于Maven的工作原理,如果您在不同的GWT下使用自己的GWT分叉版本,则不能将它们从插件的依赖项中排除groupId(您必须使用com.google.gwt groupId,或派生插件来更改其依赖项)。

net.ltgt.gwt.maven插件自带的定制packagingS表示gwt-libgwt-app关于如何使用Maven完成GWT应用程序的观点很明确:将客户端和服务器(和共享)代码分离到单独的Maven模块中(实际上是遵循Maven Way™:如果需要单独的类路径,则需要使用不同的Maven模块,每个都有其依赖性)。您当然不会被迫使用这些包装,它们只是通过设置适当的默认值和约定在POM中削减了很多配置。

最后,由于上面提到的有关“项目布局”的观点,该net.ltgt.gwt.maven插件旨在支持多模块(又名Reactor)构建,而该org.codehaus.mojo插件例如gwt:run必须在两个客户端都运行的项目上运行和服务器代码“实时”;导致多模块构建中的骇人攻击,例如必须拥有mvn install所有依赖模块(因为gwt:run无法在聚合器模块上调用),并使用build-helper-maven-plugin来从其他模块引入客户端资源以获得无缝开发经验。

您可以在gwt-maven-archetypes上的此提交中看到插件之间的差异免责声明:我是作者),org.codehaus.mojonet.ltgt.gwt.maven插件从切换到了插件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法执行目标org.codehaus.mojo:exec-maven-plugin:1.5.0:exec

Maven在命令行找不到org.codehaus.mojo:exec-maven-plugin

Maven:无法执行目标org.codehaus.mojo:sonar-maven-plugin:2.7.1:sonar

Maven GWT 2.0和Eclipse

GWT Maven插件-gwt:run有效,但gwt:compile无效。为什么?

无法在项目SpringData上执行目标org.codehaus.mojo:exec-maven-plugin:1.2.1:exec(default-cli)

在执行org.codehaus.mojo:exec-maven-plugin:1.6.0:exec时:java.lang.String无法转换为org.codehaus.mojo.exec.Modulepath

net.ltgt.gwt.maven:带有Lombok的gwt-maven-plugin

无法执行目标org.codehaus.mojo:exec-maven-plugin:1.6.0:java

在当前项目和插件组[org.apache.maven.plugins,org.codehaus.mojo]中找不到前缀为'gcloud'的插件

Maven codehaus.mojo无法解析

新的GWT Maven插件(net.ltgt.gwt.maven):不会从src / main / resources中获取gwt.xml(仅src / main / java)

在插件org.codehaus.mojo中找不到目标“ devmode”

IntelliJ:Maven gwt:运行

为什么我遇到org.codehaus.mojo:exec-maven-plugin:1.2.1:exec错误?

将持久性添加到Maven-Java-project时出错(org.codehaus.mojo)?

无法执行目标org.codehaus.mojo:tomcat-maven-plugin:1.1:run

这是什么意思:不是v4.0.0 POM。用于项目org.codehaus.mojo:rpm-maven-plugin

无法执行目标org.codehaus.mojo:exec-maven-plugin:1.2.1:exec

GWT中的历史和地点之间有什么区别/关系?

org.codehaus.mojo:jaxb2-maven-plugin 2.0在哪里?

无法运行GWT 2.7 net.ltgt.gwt.maven:gwt-maven-plugin项目

无法执行目标(GWT Maven插件)

使用“ org.apache.maven.plugins”和“ org.codehaus.mojo”手动更新Maven m2

无法在Maven项目中执行目标org.codehaus.mojo:exec-maven-plugin:1.2.1:exec失败

org.codehaus.mojo:findbugs-maven-plugin丢失

GWT Maven多模块

新的 GWT Maven 插件

codehaus.mojo 构建助手插件的目标“添加资源”与 maven 安装插件的目标“安装文件”之间有什么区别?