【问题标题】:How to add a Maven project as a Gradle dependency?如何将 Maven 项目添加为 Gradle 依赖项?
【发布时间】:2016-07-03 15:00:35
【问题描述】:

如何将 Maven 项目添加为 Gradle 依赖项?我有我正在处理的 Gradle 项目和一些我想作为代码依赖项导入到我的 Gradle 项目中的多模块 Maven 项目。怎么做?

【问题讨论】:

  • 您想使用 maven 项目的 jar 文件,因此只需将您想使用的部分的 groupId、artifactId、版本添加到您的 gradle scrpt...

标签: maven gradle dependencies


【解决方案1】:

您不能真正将 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

除非您是这两个项目的唯一开发人员,否则最好使用像 NexusArtifactory 这样的私有存储库来托管 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

【讨论】:

  • compile 现在已弃用。请改用implementation
【解决方案2】:

这是我的结构:

/workspace folder/project A (maven)
/workspace folder/project B (gradle) --> uses project A

对我有用的是在我的 maven 项目 A 上运行 mvn install。然后我将 jar 文件夹/文件从 .m2 存储库复制到 .gradle/caches/modules-2

然后我在项目B的build.gradle中添加:

dependencies {
    compile "groupId:artifactId:version"
}

在我的情况下,项目 A 在 nexus 存储库中具有较旧的不同版本,这使情况变得更加复杂。我可以通过上述步骤覆盖它。

【讨论】:

    【解决方案3】:

    问题没有提到 Maven 存储库是本地的还是远程的。我将假设它是一个远程 maven 存储库,并将据此回答问题,以便对任何有在线存储库案例的人有所帮助。

    例如,假设您要安装 Unirest (https://github.com/Kong/unirest-java)


    这是他们的 github 页面所说的:您可以使用 maven 命令安装存储库,但它不提供任何 jar 文件供您下载。


    您可能会遇到几个不提供任何 jar 文件的 github 存储库。相反,他们提供了一个像'mvm install unirest'这样的maven代码。 这对初学者来说可能会很困惑。


    含义: 这实质上意味着在线存储库(也称为“maven”)中提供了特定的 unirest github 代码,并且通常与 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      • 2012-10-22
      • 2021-07-07
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      相关资源
      最近更新 更多