Gradle替代mvn安装

时间:2011-05-25 09:29:36

标签: maven-2 gradle

我在mvn上有两个不同的项目构建。我正在尝试替换为Gradle。

项目1是SDK,项目2是使用sdk(示例)

在maven的时候,它使用mvn install创建工件,将整个项目添加到本地存储库中。

我喜欢像那样在gradle工作。我喜欢项目1 build.gradle需要将其作为gradle本地存储库发布,然后示例项目需要使用它。

在maven中我们做了mvn install,它将一个项目工件添加到.m2文件夹中,但是如何在gradle中这样做,以便我可以将项目artefact添加到本地存储库中。

我能做到的任何方式吗?

4 个答案:

答案 0 :(得分:145)

sdk/build.gradle

apply plugin: "maven"

group = "foo"
version = "1.0"

example/build.gradle

repositories {
    mavenLocal()
}

dependencies {
    compile "foo:sdk:1.0"
}

$sdk> gradle install

$example> gradle build

答案 1 :(得分:51)

您可能正在寻找:

gradle publishToMavenLocal

适用于:

apply plugin: 'maven-publish'

请参阅:https://docs.gradle.org/current/userguide/publishing_maven.html

答案 2 :(得分:8)

查看Gradle's documentation on multi-project builds

这是一个例子,带有一些额外的依赖关系。只需在根文件夹中调用gradle install,即可构建所有文件并将其存入本地存储库。

文件夹结构:

root
+--> build.gradle
+--> settings.gradle
+--> sdk
|    +--> build.gradle
+--> example
     +--> build.gradle

根/的build.gradle:

allprojects {
  apply plugin: 'java'
  apply plugin: 'maven'

  group = 'myGroup'
  version = '0.1-SNAPSHOT'
}

根/ settings.gradle:

include 'sdk'
include 'example'

根/ SDK /的build.gradle:

dependencies {
  // just an example external dep.
  compile group:'commons-lang', name:'commons-lang', version:'2.3'
}

根/示例/的build.gradle:

dependencies {
  compile project(':sdk')
  compile group:'log4j', name:'log4j', version:'1.2.16'
}

答案 3 :(得分:0)

您需要将自己的库发布到本地存储库。您可以通过以下方式做到这一点:

  1. 添加maven-publish插件:

    plugins {
        // your other plugins come here...
        id 'maven-publish'
    }
    
  2. 将发布部分添加到您的构建文件中:

    publishing {
        publications {
            myCoolLibrary(MavenPublication) {
                from components.java
            }
        }
    }
    
  3. 运行gradle build publishToMavenLocal

    the documentation中找到更多详细信息。

相关问题