14

假设我在内部服务器上运行 Sonatype Nexus,我想用它来代理 repo1.maven.org 和其他存储库。在 Maven 中,我只需将<mirror>配置添加到settings.xml. 我怎样才能用 Gradle 做到这一点?

更新:我想这样做,而不必将我的 Nexus 实例的 URL 硬编码到我拥有的每个项目中。所以我正在寻找 Maven<mirror>设置的精确副本。

我现在能想到的最好的方法是做这样的事情:

repositories {
    maven {
        url "$nexusUrl/content/groups/public"
    }
}

然后~/.gradle/gradle.properties在每个开发人员的计算机上执行此操作:

nexusUrl = https://nexus.company.com

然而,这看起来被黑了,我仍然需要在每个项目中添加 5 行。有没有更优雅的方法来做到这一点?

4

2 回答 2

14

初始化脚本可能是最好的方法。查看用户指南中的这一章。

它们为您提供了一种将逻辑注入所有项目的方法。

于 2012-11-04T23:58:17.787 回答
9

文档关于初始化脚本中所述:

创建一个以.gradleeg:结尾的文件夹和文件~/.gradle/init.d/mirror.gradle。有内容:

initscript {
  repositories {
     maven {
        url "http://repo.mycompany.com/maven2"
    }
  }
}
于 2012-11-03T15:16:17.377 回答