【问题标题】:Gradle equivelant of maven repository management paramenterGradle 等效于 Maven 存储库管理参数
【发布时间】:2015-05-20 21:14:17
【问题描述】:

在使用 Gradle 构建时,我想重用我过去创建的 maven 存储库进行依赖管理,它基本上可以工作,但我无法从 Gradle 官方文档中找到以下问题的答案:

  1. 在 maven 依赖解析期间,Gradle 是否会从默认位置(我的主文件夹)重用我的 settings.xml?
  2. 如何在 Gradle 中指定存储库而不是使用默认存储库?我可以使用 -Drepository 参数在 maven 命令中轻松完成。
  3. 如何控制更新策略?我的意思是总是像这样每周更新快照依赖和更新发布依赖,还是我在 settings.xml 中的设置也对 Gradle 生效?

提前致谢。

B.R.

【问题讨论】:

    标签: maven gradle


    【解决方案1】:

    以下我的回答基于 gradle 用户指南中的以下章节:

    现在,具体答案:

    1. 根据DEPENDENCY MANAGEMENT BASICS(第 51.6.4 节。本地 Maven 存储库),我猜这个问题的答案是肯定的:

    Gradle 使用与 Maven 相同的逻辑来识别您的位置 本地 Maven 缓存。如果本地存储库位置在 settings.xml,将使用此位置。中的 settings.xml USER_HOME/.m2 优先于 M2_HOME/conf 中的 settings.xml。 如果没有 settings.xml 可用,Gradle 使用默认位置 USER_HOME/.m2/repository。

    这适用于定义为的本地存储库:

    repositories {
        mavenLocal()
    }
    
    1. gradle 用户指南中的 8.5. Repositories51.6. Repositories 部分描述了定义您想要使用的存储库的几种方法。其中包括使用mavenCentral,指定远程自定义Maven 存储库,例如:maven { url "http://repo.mycompany.com/maven2" } 等。如果您想通过命令行传递存储库,那么您可以使用gradle system property

    2. 我相信51.9. THE DEPENDENCY CACHE 部分包含您正在寻找的信息。简而言之,默认缓存为 24 小时。但是,可以通过配置 ResolutionStrategy 覆盖它,例如:resolutionStrategy.cacheDynamicVersionsFor 10, 'minutes'。 关于使用 settings.xml 中的设置,我找不到明确的答案,但欢迎您试一试:)

    【讨论】:

    • 感谢 Amnon 提供的描述性信息!关于第2项的问题,看起来即使Gradle重用.m2/settings.xml来获取maven本地存储库,它只是将其视为另一个存储库,它永远不会重用settings.xml中的maven远程存储库配置进行依赖下载。我仍然必须在 gradle 中显式声明 maven 远程存储库以进行依赖解析和更新。我觉得很奇怪,在 gradle 中利用 maven 远程存储库有什么技巧吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2014-06-10
    • 2014-11-17
    • 2015-10-22
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多