Maven 2 Gradle替代mvn安装
我有两个不同的项目建立在mvn。我正试图取代格拉德尔 项目1是一个SDK,项目2正在使用该SDK(示例) 在maven时代,它使用mvn安装创建工件,将整个项目添加到本地存储库中 我喜欢那样在格拉德尔工作。我喜欢project 1 build.gradle需要将其发布为gradle本地存储库,然后示例项目需要使用它 在maven中,我们进行mvn安装,将项目工件添加到.m2文件夹中,但在gradle中如何操作,以便我可以将项目工件添加到本地存储库中Maven 2 Gradle替代mvn安装,maven-2,gradle,Maven 2,Gradle,我有两个不同的项目建立在mvn。我正试图取代格拉德尔 项目1是一个SDK,项目2正在使用该SDK(示例) 在maven时代,它使用mvn安装创建工件,将整个项目添加到本地存储库中 我喜欢那样在格拉德尔工作。我喜欢project 1 build.gradle需要将其发布为gradle本地存储库,然后示例项目需要使用它 在maven中,我们进行mvn安装,将项目工件添加到.m2文件夹中,但在gradle中如何操作,以便我可以将项目工件添加到本地存储库中 有什么方法可以这样做吗?sdk/build.g
有什么方法可以这样做吗?
sdk/build.gradle
:
apply plugin: "maven"
group = "foo"
version = "1.0"
repositories {
mavenLocal()
}
dependencies {
compile "foo:sdk:1.0"
}
示例/build.gradle
:
apply plugin: "maven"
group = "foo"
version = "1.0"
repositories {
mavenLocal()
}
dependencies {
compile "foo:sdk:1.0"
}
退房
这里有一个例子,有一些额外的依赖项。只需在根文件夹中调用gradle install
,所有内容都将生成并放入本地repo
文件夹结构:
root
+--> build.gradle
+--> settings.gradle
+--> sdk
| +--> build.gradle
+--> example
+--> build.gradle
root/build.gradle:
allprojects {
apply plugin: 'java'
apply plugin: 'maven'
group = 'myGroup'
version = '0.1-SNAPSHOT'
}
dependencies {
// just an example external dep.
compile group:'commons-lang', name:'commons-lang', version:'2.3'
}
dependencies {
compile project(':sdk')
compile group:'log4j', name:'log4j', version:'1.2.16'
}
root/settings.gradle:
include 'sdk'
include 'example'
root/sdk/build.gradle:
allprojects {
apply plugin: 'java'
apply plugin: 'maven'
group = 'myGroup'
version = '0.1-SNAPSHOT'
}
dependencies {
// just an example external dep.
compile group:'commons-lang', name:'commons-lang', version:'2.3'
}
dependencies {
compile project(':sdk')
compile group:'log4j', name:'log4j', version:'1.2.16'
}
root/example/build.gradle:
allprojects {
apply plugin: 'java'
apply plugin: 'maven'
group = 'myGroup'
version = '0.1-SNAPSHOT'
}
dependencies {
// just an example external dep.
compile group:'commons-lang', name:'commons-lang', version:'2.3'
}
dependencies {
compile project(':sdk')
compile group:'log4j', name:'log4j', version:'1.2.16'
}
您可能正在寻找:
gradle publishToMavenLocal
提供给:
apply plugin: 'maven-publish'
请参阅:您需要将自己的库发布到本地存储库。您可以通过以下方式执行此操作:
maven发布插件:
plugins {
// your other plugins come here...
id 'maven-publish'
}
publishing {
publications {
myCoolLibrary(MavenPublication) {
from components.java
}
}
}
gradlebuildpublishtoavenlocal
在中查找更多详细信息应用插件:“maven”和$sdk>gradle安装这将把sdk安装到.m2中,对吗?mavenLocal()还从.m2和.gradle获取信息?
gradle安装
发布到本地Maven repo,并且mavenLocal()
确保在那里查找依赖项。gradle不是像Maven那样“面向阶段”吗?那么,如果我做一个gradle发布
,它不也会经历一个安装
阶段吗?这是理想的做法吗?如果他想创建一个新的项目,例如2,它也依赖于sdk,该怎么办?现在他不得不把两个不相关的项目放在一个根项目下,仅仅因为它们共享一个依赖项?您可能会认为整个“多项目”设置也是一个Git项目。同样,这对公司/多开发人员的工作流程有害吗?即使使用maven选项,它也可以正常工作:gradle-Dmaven.repo.local=.m2/repository publishToAvenLocal
这与使用maven
插件的gradle安装有何不同?