我有2个不同的项目建立在mvn。我正在尝试替换到Gradle。
项目1是一个SDK,项目2使用该SDK(示例)。
在maven的时候,它使用mvn安装创建工件,将整个项目添加到本地存储库。
我喜欢像那样在gradle中工作。我喜欢项目1构建。Gradle需要将其作为Gradle本地存储库发布,然后示例项目需要使用它。
在maven中,我们做mvn安装,将项目工件添加到.m2文件夹中,但如何在gradle中做,所以我可以将项目工件添加到本地存储库中。
我有什么办法可以做到吗?
我有2个不同的项目建立在mvn。我正在尝试替换到Gradle。
项目1是一个SDK,项目2使用该SDK(示例)。
在maven的时候,它使用mvn安装创建工件,将整个项目添加到本地存储库。
我喜欢像那样在gradle中工作。我喜欢项目1构建。Gradle需要将其作为Gradle本地存储库发布,然后示例项目需要使用它。
在maven中,我们做mvn安装,将项目工件添加到.m2文件夹中,但如何在gradle中做,所以我可以将项目工件添加到本地存储库中。
我有什么办法可以做到吗?
sdk / build.gradle:
apply plugin: "maven"
group = "foo"
version = "1.0"
例子/ 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发布插件
您需要将自己的库发布到本地存储库。你可以通过以下方式做到这一点:
添加maven-publish插件: 插件{ //你的其他插件在这里… id“maven-publish” } 将发布部分添加到构建文件中: 出版{ 出版物{ myCoolLibrary (MavenPublication) { 从components.java } } } 运行gradle build publishToMavenLocal 在文档中可以找到更多细节。