Gradle替代mvn安装

我有2个不同的项目建立在mvn。我正在尝试替换到Gradle。

项目1是一个SDK,项目2使用该SDK(示例)。

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

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

在maven中,我们做mvn安装,将项目工件添加到.m2文件夹中,但如何在gradle中做,所以我可以将项目工件添加到本地存储库中。

我有什么办法可以做到吗?

126767 次浏览

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

查看Gradle关于多项目构建的文档

下面是一个带有一些额外依赖项的示例。只需在根文件夹中调用gradle install,所有内容都将构建并放入本地repo。

文件夹结构:

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'
}

你可能在寻找:

gradle publishToMavenLocal

build.gradle:

plugins {
// other plugins
id 'maven-publish'
}




publishing {
publications {
maven(MavenPublication) {
from components.java
}
}
}

看:Maven发布插件

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

  1. 添加maven-publish plugin:

    plugins {
    // your other plugins come here...
    id 'maven-publish'
    }
    
  2. Add the publishing section to your build file:

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

    Find more details in the documentation.