从Maven 2/3迁移到Gradle

Gon*_*gui 38 migration build-process maven-2 gradle

我一直在研究Gradle,看起来很有趣.我认为能够用除XML之外的任何其他语言编写脚本非常酷,我不清楚多语言Maven POM文件是否仍然是一个可行的选择.

我正在开发一个使用Maven 2.2.1作为构建工具的项目.这个项目:

  • 是多模块的
  • 使用(也是我们自己的)插件
  • 依赖于Artifactory代理存储库

从Maven到Gradle的迁移是否有任何经验?陷阱,痛点,角落案件?任何形式的经验都是非常受欢迎的.

Ben*_*hko 34

从Maven到Gradle的迁移并不像从Ant到Maven那样容易(至少在目前).您可以轻松地重用Ant脚本,并使其成为Gradle构建中的一等公民.Gradle路线图上还有一项任务,用于深入导入Maven构建.

到目前为止,我将两个企业Maven版本迁移到Gradle.它们都是使用标准Maven插件的多模块项目.我基本上重写了Gradle方式的构建,至少需要一些关于Gradle的知识.根据我的经验,您可以轻松地在Gradle中运行相同的构建.Gradle并没有真正把你包装在这里并且相当灵活.在此过程中,您可能会发现自己必须编写一个不存在的自定义插件,具体取决于您使用的Maven插件.然而,那里已经有很多插件了.到目前为止,我还没有陷入真正的障碍.即使Gradle文档相当不错,您可能会发现自己正在阅读很多Gradle论坛帖子,以找到解决您的一个问题的方法.一些标准的Maven功能不支持开箱即用,例如provided范围或WAR就地.但是,有很简单的方法可以解决它.我没有使用Artifactory存储库.我处理的是Nexus存储库.据我所知,Gradle家伙对Artifactory有很好的支持.编辑: JFrog提供Artifactory Gradle插件.

一个好的开始方法是使用迁移工具Maven2Gradle,让您从Maven构建中生成Gradle脚本.就个人而言,我还没有使用它.我与Maven构建并行开发了Gradle构建,这不会造成任何麻烦.Maven将其输出置于targetGradle下build.确保为变革做好准备.让他们试一下Gradle构建并熟悉该工具.

完全迁移后,您将对构建的可维护性和可扩展性感到非常高兴.添加自定义构建逻辑非常容易,你会感激你离开了XML-land.在性能方面,你也不会退后一步.增量构建功能可以很好地完成其工作.

  • Gradle war插件现在(即在Gradle 1.0-milestone-6中)支持两个额外的配置:compileProvided和runtimeProvided. (2认同)
  • 不幸的是,如果您的项目不应用WAR插件,这对您没有帮助.您仍然需要定义自己的`provided`配置.这仍然在Gradle社区中有争议地讨论,例如参见[JIRA门票](http://issues.gradle.org/browse/GRADLE-784). (2认同)

Rag*_*ram 11

您可能还想阅读这篇关于将maven项目移植到gradle的经验的文章.

  • 如果您的网站出现故障,您可以在此处添加摘要吗? (8认同)

Aru*_*uri 8

在您拥有pom.xml的目录中,只需运行以下命令:

gradle init - type pom

这应该将您的maven pom.xml转换为build.gradle