【问题标题】:Gradle - define a Maven repository for a specific groupGradle - 为特定组定义 Maven 存储库
【发布时间】:2021-01-21 19:30:52
【问题描述】:

我的 Gradle 实施使用 Maven Central 和一个存储我公司 jar 的本地存储库。有没有办法告诉 Gradle 在本地存储库中只搜索组“com.myCompany”的依赖项?当在我的本地存储库中找不到公共 jar 时,我遇到了错误,我认为这可能是解决此问题的一种方法。

【问题讨论】:

    标签: gradle


    【解决方案1】:

    我不认为这是可能的。但是如果你得到错误,当你的本地仓库中没有公共 jars 时,这很可能是你的私人仓库的问题。当未找到请求的 jar 时,它应该返回正确的 HTTP 404。我过去在 Archiva 上遇到过问题。但是在 Archiva 中有一个选项。

    一种解决方法可能是更改构建脚本中存储库的顺序:

    而不是

    repositories {
        maven { url:...}
        mavenCentral()
    }
    

    试试

    repositories {
        mavenCentral()
        maven { url:...}
    }
    

    在这种情况下,Gradle 将首先尝试 mavenCentral,它的行为确实正确,最后只有您的本地存储库。

    【讨论】:

    • 这就是我目前所拥有的,但它会带来一个小的安全问题,即我的 jar 名称会被暴露。
    • 如果您尝试从 maven 存储库下载公共 jar 会发生什么,例如。 local-maven-repo/org/slf4j/slf4j-api/1.7.10/… 使用您的浏览器?您收到 404 not-found 吗?
    【解决方案2】:

    是的,它is possible。示例:

    repositories {
        maven {
            url "https://artifacts.myCompany.com/m2_repo"
            content {
                includeGroup "com.myCompany"
            }
        }
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 2020-06-21
      • 2014-10-17
      • 2012-07-15
      • 1970-01-01
      相关资源
      最近更新 更多