能够在IntelliJ中将Gradle项目转换为Maven并保留两个构建文件

时间:2016-03-30 22:00:22

标签: maven intellij-idea gradle

我一直很高兴使用IntelliJ + Gradle,但我最近被要求转移到Maven作为构建工具。有没有一种简单的方法可以在IntelliJ中将Gradle项目转换为Maven,或者保留两个配置文件(build.gradle和pom.xml)?根据{{​​3}},我使用了Gradle Maven的插件并在build / poms中生成了pom.xml文件,但是我希望将build.gradle和pom.xml保持在同一级别,从而提供构建的能力使用任何一个首选的项目。这可能吗?

谢谢,

3 个答案:

答案 0 :(得分:9)

我无法为您提供一个解决方案,可让您保持所有Gradle项目设置不变,但如果您发现以下内容有用,请相应地进行标记。

要在两个构建工具之间移动,您可以执行以下操作:

如果您有要转换的Maven项目,则需要进入项目文件夹,并在cmd行上执行“gradle init”(显然确保Gradle在您的路径上)。关闭并重新打开项目,系统将提示您在项目中启用Gradle。

关于将Gradle转换回Maven的确切问题。您只需删除.idea文件夹,保留所有Gradle脚本即可。然后在Intellij内部,选择打开项目。导航到您的pom.xml并选择它。接下来通过以下屏幕。当Intellij提示您将项目作为Gradle启用时,请拒绝。结果是新项目仍然包含您的Gradle脚本,但现在使用Maven构建。你需要有一个maven可以使用的有效pom.xml。

答案 1 :(得分:2)

要创建 pom,让我们将 Maven 插件添加到您的 build.gradle 文件中:

apply plugin: 'maven'

插件使用 Gradle 文件中存在的组和版本,并将它们添加到 POM 文件中。此外,它会自动从目录名称中获取 artifactId。

插件也会自动添加安装任务。所以要转换,让我们运行以下命令:

gradle install

答案 2 :(得分:1)

什么对我有用:

  1. 在我的 build.gradle 顶部添加 maven-publish 插件
plugins {
    id 'maven-publish'
}
  1. 使用基本的 Maven 信息添加发布任务
publishing {
    publications {
        maven(MavenPublication) {
            groupId = 'com.my.groupid'
            artifactId = 'my-artifact'
            version = '1.0-SNAPSHOT'
            from components.java
        }
    }
}
  1. 运行
./gradlew publishToMavenLocal
  1. 转到 build/publications/maven/pom-default.xml 并将其复制为 pom.xml
  2. 上面只创建了一个带有依赖项的简单 maven pom,需要进行一些调整才能有用

注意:我在一个非常简单的项目中尝试了这个。