如何将 Maven 项目添加为 Gradle 依赖项?
How to add a Maven project as a Gradle dependency?
如何将 Maven 项目添加为 Gradle 依赖项?我有我正在处理的 Gradle 项目和一些我想作为代码依赖项导入到我的 Gradle 项目中的多模块 Maven 项目。怎么做?
你不能直接将Maven多模块项目结构添加为依赖。但是,您可以使用 mvn install
构建多模块项目以将项目 jar 安装到本地存储库。
然后,在你的build.gradle
中,你需要如下配置:
repositories {
mavenLocal()
}
这会将您的本地 Maven 存储库添加到 Gradle 将查找您的工件的代码存储库列表中。然后您可以声明对您的 Gradle 项目需要的模块的依赖。
dependencies {
compile 'my-group:my-artifact:version',
'my-group:my-other-artifact:version'
}
当多模块项目更新到新版本时,运行 mvn install
并根据需要更新您的 build.gradle
。
除非您是这两个项目的唯一开发人员,否则最好使用像 Nexus or Artifactory 这样的私有存储库来托管 maven 项目并配置 Gradle 从那里提取依赖项。
参考文献:
Gradle 中的 Maven 本地存储库:https://docs.gradle.org/2.4/userguide/dependency_management.html#sub:maven_local
Gradle 中的 Maven 依赖项:
https://docs.gradle.org/2.4/userguide/dependency_management.html#sub:module_dependencies
这是我的结构:
/workspace folder/project A (maven)
/workspace folder/project B (gradle) --> uses project A
对我有用的是 运行 mvn install
在我的 maven 项目 A 上。然后我将 jar folders/file 从 .m2
存储库复制到 .gradle/caches/modules-2
然后我在项目B的build.gradle中添加:
dependencies {
compile "groupId:artifactId:version"
}
就我而言,项目 A 在 nexus 存储库中有一个较旧的不同版本,这使它变得更加复杂。我能够通过上述步骤覆盖它。
问题没有提到 maven 存储库是本地的还是远程的。我将假设它是一个远程 Maven 存储库,并将根据它回答问题,以便它对任何有在线存储库案例的人都有帮助。
例如,假设您要安装 Unirest ( https://github.com/Kong/unirest-java )
他们的 github 页面是这样说的:您可以使用 maven 命令安装存储库,但它不提供任何 jar 文件供您下载。
您可能会遇到几个不提供任何 jar 文件的 github 存储库。相反,他们提供了像 'mvm install unirest' 这样的 Maven 代码。 这对于初学者来说可能会非常混乱。
什么意思:
这实质上意味着特定的 unirest github 代码在在线存储库(也称为“maven”)中可用,并且通常与 IDE 捆绑在一起的工具“maven”可用于直接从 github 安装。
所以我们正在看这个:
online project Unirest (maven repository which you want to import)
/workspace folder/project B (gradle) --> uses project A
因此您在 Intellij(或您的 IDE)中打开项目 B。打开 build.gradle 并设置以下设置:
repositories {
mavenCentral()
}
dependencies {
compileOnly group: 'com.konghq', name: 'unirest-java', version: '3.11.11'
}
您如何获得这些值?组/名称/版本?您可以从 Maven 的安装说明中获取它。来自 github 代码中给出的 Maven xml。
如何将 Maven 项目添加为 Gradle 依赖项?我有我正在处理的 Gradle 项目和一些我想作为代码依赖项导入到我的 Gradle 项目中的多模块 Maven 项目。怎么做?
你不能直接将Maven多模块项目结构添加为依赖。但是,您可以使用 mvn install
构建多模块项目以将项目 jar 安装到本地存储库。
然后,在你的build.gradle
中,你需要如下配置:
repositories {
mavenLocal()
}
这会将您的本地 Maven 存储库添加到 Gradle 将查找您的工件的代码存储库列表中。然后您可以声明对您的 Gradle 项目需要的模块的依赖。
dependencies {
compile 'my-group:my-artifact:version',
'my-group:my-other-artifact:version'
}
当多模块项目更新到新版本时,运行 mvn install
并根据需要更新您的 build.gradle
。
除非您是这两个项目的唯一开发人员,否则最好使用像 Nexus or Artifactory 这样的私有存储库来托管 maven 项目并配置 Gradle 从那里提取依赖项。
参考文献:
Gradle 中的 Maven 本地存储库:https://docs.gradle.org/2.4/userguide/dependency_management.html#sub:maven_local
Gradle 中的 Maven 依赖项: https://docs.gradle.org/2.4/userguide/dependency_management.html#sub:module_dependencies
这是我的结构:
/workspace folder/project A (maven)
/workspace folder/project B (gradle) --> uses project A
对我有用的是 运行 mvn install
在我的 maven 项目 A 上。然后我将 jar folders/file 从 .m2
存储库复制到 .gradle/caches/modules-2
然后我在项目B的build.gradle中添加:
dependencies {
compile "groupId:artifactId:version"
}
就我而言,项目 A 在 nexus 存储库中有一个较旧的不同版本,这使它变得更加复杂。我能够通过上述步骤覆盖它。
问题没有提到 maven 存储库是本地的还是远程的。我将假设它是一个远程 Maven 存储库,并将根据它回答问题,以便它对任何有在线存储库案例的人都有帮助。
例如,假设您要安装 Unirest ( https://github.com/Kong/unirest-java )
他们的 github 页面是这样说的:您可以使用 maven 命令安装存储库,但它不提供任何 jar 文件供您下载。
您可能会遇到几个不提供任何 jar 文件的 github 存储库。相反,他们提供了像 'mvm install unirest' 这样的 Maven 代码。 这对于初学者来说可能会非常混乱。
什么意思: 这实质上意味着特定的 unirest github 代码在在线存储库(也称为“maven”)中可用,并且通常与 IDE 捆绑在一起的工具“maven”可用于直接从 github 安装。
所以我们正在看这个:
online project Unirest (maven repository which you want to import)
/workspace folder/project B (gradle) --> uses project A
因此您在 Intellij(或您的 IDE)中打开项目 B。打开 build.gradle 并设置以下设置:
repositories {
mavenCentral()
}
dependencies {
compileOnly group: 'com.konghq', name: 'unirest-java', version: '3.11.11'
}
您如何获得这些值?组/名称/版本?您可以从 Maven 的安装说明中获取它。来自 github 代码中给出的 Maven xml。