如何将本地 Maven m2 作为属性传递给 Gradle?

Posted

技术标签:

【中文标题】如何将本地 Maven m2 作为属性传递给 Gradle?【英文标题】:How can you pass in a local Maven m2 to Gradle as a property? 【发布时间】:2020-11-05 06:52:11 【问题描述】:

我目前正在尝试通过 Jenkins Freestyle 项目构建我的 android 应用程序。我能够在 Android Studio 中成功构建它,但 Jenkins 无法找到依赖项(我知道它安装在我的机器上的 .m2 中)。有没有办法可以将我的 .m2 文件夹传递到 Gradle 系统或项目属性中,以便它知道在那里进行搜索?

我的目标是能够在不直接编辑我的 build.gradle 文件的情况下做到这一点。

【问题讨论】:

【参考方案1】:

为了更改存储库 - 您需要修改 build.xml

mavenLocal() - 提供对本地 .m2 的访问 - 但不建议参见 https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven-local

您可以有条件地添加 mavenLocal() 并从命令行控制标志

【讨论】:

【参考方案2】:

如果我没听错的话,你是在本地系统上运行 Jenkins,否则我不知道如何从工作站的本地 Maven 缓存中获取依赖项。

如果您不想更改您的build.gradle 文件,可以注册一个系统特定的初始化脚本。它需要放在~/.gradle/init.d 中,并且应该包含如下内容:

allprojects 
    repositories 
        mavenLocal() 
     
 

【讨论】:

以上是关于如何将本地 Maven m2 作为属性传递给 Gradle?的主要内容,如果未能解决你的问题,请参考以下文章

如何强制 IntelliJ 中的 Maven 从本地 .m2 存储库中提取特定依赖项

如何将系统属性传递给 jar 文件

如何告诉 spark 和 zeppelin 在 AWS EMR 中使用本地 maven .m2 目录?

如何修改MAVEN本地仓库的存储位置

如何将对象(或关联数组)作为属性值传递给我的 Web 组件

maven 本地仓库的配置以及如何修改默认.m2仓库位置