如何将Sonatype Nexus与Gradle一起用于代理销售代表?

如何将Sonatype Nexus与Gradle一起用于代理销售代表?,gradle,Gradle,假设我在一台内部服务器上运行Sonatype Nexus,我想用它来代理repo1.maven.org和其他存储库。在Maven中,我只需将配置添加到settings.xml。我怎么能和Gradle这样做 更新:我希望这样做,而不必将Nexus实例的URL硬编码到我拥有的每个项目中。因此,我正在寻找Maven设置的精确副本 目前我能想到的最好办法就是做这样的事情: repositories { maven { url "$nexusUrl/content/groups/p

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

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

目前我能想到的最好办法就是做这样的事情:

repositories {
    maven {
        url "$nexusUrl/content/groups/public"
    }
}
然后在每个开发人员的计算机上的
~/.gradle/gradle.properties
中设置:

nexusUrl = https://nexus.company.com
然而,这看起来像黑客,我仍然要添加5行到每个项目。有没有更优雅的方法可以做到这一点?

如和中所述:

创建以
.gradle
结尾的文件夹和文件,例如:
~/.gradle/init.d/mirror.gradle
。 内容包括:

initscript {
  repositories {
     maven {
        url "http://repo.mycompany.com/maven2"
    }
  }
}

初始化脚本可能是最好的方法。请参阅中的本章


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

此文档URL中的片段id不再存在-您指的是文档的哪一部分?此解决方案缺少要点!在Maven中,您可以在项目pom中指定存储库。在您的PC上,您可以使用自己的存储库覆盖它,但这是开发人员的选择,而不是工件作者的选择。工件作者如何决定您要使用哪个本地repo?@BrunoRanschaert工件作者并不决定您使用什么repo来查找工件。gradle是一个构建工具。如果依赖依赖项B构建项目A,则项目A的build.gradle文件将决定在何处查找依赖项B。依赖项B的pom(如果由gradle生成)不包含任何存储库信息。因为,与Maven不同,pom仅用于描述工件的依赖关系(以及作者、许可证等)。不指定下载依赖项的方式/位置,也不指定如何生成工件。@jb nizet。你没有领会我的意思。我是一个图书馆作家,我出版我的图书馆说git与build.gradle。现在,您下载该库以进行一些本地修改(开源),但您希望使用您的公司repo。作为库用户/修改者,您应该能够在其中放置代理,而无需修改库源。您希望代理某些工件的原因有几个:例如,您可能修改了其中一个依赖项。。。(这是另一个话题)。