如何将Maven项目添加为Gradle依赖项?

如何将Maven项目添加为Gradle依赖项?,maven,gradle,dependencies,Maven,Gradle,Dependencies,如何将Maven项目添加为Gradle依赖项?我有我正在从事的Gradle项目和一些多模块Maven项目,我想作为代码依赖项导入到我的Gradle项目中。如何做到这一点?您不能直接将Maven多模块项目结构添加为依赖项。但是,您可以使用mvn install构建多模块项目,将项目jar安装到本地存储库中 然后,在build.gradle中,您需要以下配置: repositories { mavenLocal() } 这将把您的本地Maven存储库添加到Gradle将查找您的工件的代码存储库

如何将Maven项目添加为Gradle依赖项?我有我正在从事的Gradle项目和一些多模块Maven项目,我想作为代码依赖项导入到我的Gradle项目中。如何做到这一点?

您不能直接将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

除非您是这两个项目的唯一开发人员,否则最好使用一个私有存储库,比如或托管maven项目,并配置Gradle从中提取依赖项

参考资料:

Gradle中的Maven本地存储库:

Gradle中的Maven依赖项: 这是我的结构:

/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存储库中有一个较旧的不同版本,这使问题更加复杂。我可以用上面的步骤覆盖它。

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

例如,假设您要安装Unirest()


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


您可能会遇到几个不提供任何jar文件的github存储库。相反,它们提供了一个maven代码,如“mvm安装unirest”对于初学者来说,这可能非常令人困惑。


它的意思: 这本质上意味着,在线存储库(也称为“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中。

您希望使用maven项目的jar文件,因此只需将您希望使用的部件的groupId、artifactId、版本添加到gradle scrpt…
compile
现在不推荐使用。请改用
实现