如何将 Maven 构建转换为 Gradle?

Posted

技术标签:

【中文标题】如何将 Maven 构建转换为 Gradle?【英文标题】:How to convert a Maven build to Gradle? 【发布时间】:2014-01-18 16:20:10 【问题描述】:

我知道我应该使用我的build.gradleinit.gradle 文件,但我不知道要写什么或如何使用pom.xml 文件指向我的项目文件夹。

【问题讨论】:

如果您完全不熟悉编码,我不建议您使用 Gradle,因为它需要您在 Groovy 代码中定义您的构建。在发布过于模糊而无法回答的问题之前,您应该阅读一些基本的 Groovy、Maven 和 Gradle 教程。 不幸的是,我需要在不久的将来进行概念验证。我想一个更好的问题是,如何将 maven 项目转换为 gradle。 【参考方案1】:

第一步是在包含(主)POM 的目录中运行gradle init。这会将 Maven 构建转换为 Gradle 构建,生成一个 settings.gradle 文件和一个或多个 build.gradle 文件。对于更简单的 Maven 构建,这就是您需要做的所有事情。对于更复杂的 Maven 构建,可能需要在 Gradle 端手动添加无法自动转换的功能。

https://guides.gradle.org/migrating-from-maven/

【讨论】:

在生成的build.gradle 中应该有注释说明它的含义。 是的,有这个:compile(group: 'commons-lang', name: 'commons-lang', version:'1.0.1') /* 这个依赖最初是在Maven中提供了范围,但该项目不是战争类型。 Gradle 尚不支持此行为,因此此依赖项已转换为编译依赖项。请在解决后查看并删除此关闭。 */ 如果您需要这方面的帮助,请在此处搜索 gradle provided scope 或在 forums.gradle.org 上搜索。这是一个常见的问题。 我必须明确地将“apply plugin: 'war'”添加到我转换后的 Maven 战争项目中(即使我的 pom.xml 有 war),以便“providedCompile组:'javax.servlet',名称:'servlet-api' ...“工作 哪个 Gradle 版本?如果我没记错的话,最近的 Gradle 版本会自动执行此操作。【参考方案2】:

正如彼得·尼德维泽所说:

对于更复杂的 Maven 构建,可能需要手动添加 Gradle 端无法转换的功能 自动地。

虽然你必须自己手动编写一些部分。对于复杂的 Maven 构建,有一个在线服务可能是一个有用的工具。 maven2gradle 是 github 上的一个项目,它可以自动将在线依赖项元素从 maven 转换为 gradle 脚本。 使用它,

    联系maven2gradle 。网址 打开并选择包含您的 maven 文件。 将您的 maven 依赖项粘贴到该网页中的文本框(使用 或没有依赖项根元素)。 点击转换按钮。

更多信息http://sagioto.github.io/maven2gradle/

【讨论】:

以上是关于如何将 Maven 构建转换为 Gradle?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 maven pom 标签 <snapshot> 转换为 gradle

将 Maven 依赖项转换为 Gradle

将 maven 代码生成转换为 gradle 任务

如何将 AAR 转换为 JAR

将Java项目从maven迁移到gradle

将Java项目从maven迁移到gradle