Maven 2 从Maven 2/3迁移到Gradle
我一直在调查格拉德尔,看起来很有趣。我认为能够用XML以外的任何其他语言编写脚本是非常酷的,而且我不清楚polyglot Maven POM文件是否仍然是一个可行的选择 我正在从事一个使用Maven 2.2.1作为构建工具的项目。本项目:Maven 2 从Maven 2/3迁移到Gradle,maven-2,migration,build-process,gradle,Maven 2,Migration,Build Process,Gradle,我一直在调查格拉德尔,看起来很有趣。我认为能够用XML以外的任何其他语言编写脚本是非常酷的,而且我不清楚polyglot Maven POM文件是否仍然是一个可行的选择 我正在从事一个使用Maven 2.2.1作为构建工具的项目。本项目: 是多模块的 使用(也是我们自己的)插件 依赖于人工代理存储库 从Maven迁移到Gradle有什么经验吗?陷阱,痛点,角落案例?任何一种体验都是非常受欢迎的。从Maven到Gradle的迁移不像从Ant到Maven那么容易(至少目前如此)。你可以很容易地让
- 是多模块的
- 使用(也是我们自己的)插件
- 依赖于人工代理存储库
从Maven迁移到Gradle有什么经验吗?陷阱,痛点,角落案例?任何一种体验都是非常受欢迎的。从Maven到Gradle的迁移不像从Ant到Maven那么容易(至少目前如此)。你可以很容易地让他们成为你的Gradle建筑中的一流公民。还有一个任务在等待 到目前为止,我已将两个enterprise Maven构建迁移到Gradle。它们都是使用标准Maven插件的多模块项目。我基本上是以Gradle的方式重写构建的,这至少需要一些关于Gradle的知识。根据我的经验,你也可以很容易地在Gradle中运行相同的构建。Gradle在这里并没有真正限制你,而且相当灵活。在这个过程中,您可能会发现自己不得不编写一个自定义插件,而这个插件还不存在,这取决于您使用的Maven插件。然而,已经有了一个解决方案。到目前为止,我还没有遇到真正的障碍。尽管Gradle文档非常好,但您可能会发现自己阅读了很多Gradle论坛的帖子,以找到解决问题的方法。一些标准Maven功能不支持开箱即用,例如提供的
范围或。然而,有一些简单的方法可以解决这个问题。我没有使用过人工仓库。我处理的是Nexus存储库。据我所知,Gradle的人对Artifactory有很好的支持编辑:JFrog提供了一个
一个好的开始方法是使用迁移工具,让您从Maven构建中生成一个Gradle脚本。就我个人而言,我还没有使用它。我开发了Gradle构建,与Maven构建并排开发,没有造成任何问题。马文提出了自己的观点
在target
下输出,在build
下渐变。确保你的团队做好了应对变化的准备。让他们尝试Gradle构建并熟悉该工具
一旦完全迁移,您将非常满意构建的可维护性和可扩展性。添加自定义构建逻辑非常容易,您将很感激您离开了XML领域。就表现而言,你也不会后退一步。增量构建功能做得很好。您可能还想了解我将maven项目移植到gradle的经验 如果希望生成输出位于'target'
下,而不是像maven一样位于'build'
下,则始终可以将gradle下的buildDir
更改为'target'
:
buildDir = 'target'
maven2Gradle似乎已经被从命令行运行gradle init
所取代(尽管这是一个相当实验性的特性)。从Maven项目中执行一些基本的Gradle设置似乎可以正常工作。在pom.xml所在的目录中,只需运行以下命令:
gradleinit——pom型
这将把你的maven pom.xml转换成build.gradlegradle war插件现在(即在gradle 1.0-milestone-6中)支持两种额外的配置:compileProvided和runtimeProvided。不幸的是,如果你的项目没有应用war插件,这对你没有帮助。您仍然需要定义自己提供的配置。Gradle社区对此仍有争议,例如,看到了吗?如果你的网站宕机,你能在这里添加一个摘要吗?