我一直在研究Gradle,它看起来非常有趣。我认为能够使用除XML以外的任何其他语言编写脚本是相当酷的功能,目前我不清楚多语言Maven POM文件是否仍然是可行的选择。
我正在开展一个项目,该项目使用Maven 2.2.1作为构建工具。这个项目:
- 是多模块的
- 使用(我们自己的)插件
- 依赖于Artifactory代理存储库
是否有从Maven迁移到Gradle的经验?难点、痛点、角落案例?任何类型的经验都非常欢迎。
我一直在研究Gradle,它看起来非常有趣。我认为能够使用除XML以外的任何其他语言编写脚本是相当酷的功能,目前我不清楚多语言Maven POM文件是否仍然是可行的选择。
我正在开展一个项目,该项目使用Maven 2.2.1作为构建工具。这个项目:
是否有从Maven迁移到Gradle的经验?难点、痛点、角落案例?任何类型的经验都非常欢迎。
到目前为止,我已经将两个企业级的Maven构建迁移到了Gradle。它们都是使用标准Maven插件的多模块项目。基本上,我按照Gradle的方式重写了构建,这需要至少对Gradle有一些了解。根据我的经验,你也可以轻松地在Gradle中运行相同的构建。Gradle在这里并没有限制你,并且非常灵活。在此过程中,您可能会发现自己必须编写一个自定义插件,这取决于您使用的Maven插件。但是,已经有广泛的插件可供选择。到目前为止,我还没有遇到真正的障碍。尽管Gradle文档非常好,但您可能会发现自己需要阅读很多Gradle论坛帖子才能找到解决某个问题的方法。一些标准的Maven功能不支持开箱即用,例如provided
范围或WAR inplace。但是,有简单的解决方法。我没有使用Artifactory存储库。我处理的是Nexus存储库。据我所知,Gradle团队对Artifactory有很好的支持。 编辑:JFrog提供了一个Artifactory Gradle插件。
target
下,Gradle则位于build
下。确保你的团队为这种变化做好准备。让他们尝试使用Gradle构建并熟悉该工具。maven2Gradle似乎已被替换为能够从命令行运行gradle init
(尽管这是一个相当实验性的功能)。它似乎可以很好地从Maven项目中进行一些基本的Gradle设置。
'target'
而不是像Maven一样为'build'
,可以在Gradle中将buildDir
更改为'target'
。请注意,不要删除HTML标签。buildDir = 'target'