build.gradle中带有Buildship的互斥存储库

问题描述 投票:0回答:1

我有一个如下的多项目:

- A
  - settings.gradle
  - build.gradle
- B ( includes A )
  - build.gradle 

在这些文件中,我使用默认存储库作为依赖项和插件。我们将Eclipse与Buildship一起使用,直到现在,解决方案主要是通过Refresh Gradle Project完成的。

问题:驻留在不同网络上的一些同事和我们的CI服务器必须对所有依赖项和插件也使用自定义存储库”。该虚拟存储库需要身份验证,证书和代理,以补充各种乐趣。

尝试在build.gradle中指定两个存储库,但对它们进行排序无济于事。第一个失败的构建将失败,并且其中一个将always失败,具体取决于网络。考虑将变量作为可以从文件中覆盖/读取的第一行,但是由于pluginManagement必须是settings.gradle中的第一个元素,并且必须在任何内容之前进行赋值,因此该选项似乎也没有用。

我需要在这些存储库之间轻松切换,但仍以某种方式与Buildship兼容。

我真的没有其他方法,只能创建多个文件集,例如build.1.gradle / settings.1.gradle,并使用某些脚本或在每次构建之前手动用其内容覆盖标准build.gradle / settings.gradle

这可以通过Gradle来实现,还是可以以一种我可能错过的聪明方法来实现?

eclipse gradle buildship
1个回答
0
投票

最后,我能够实现真正接近我想要的目标。gradle中有一个初始化脚本,它可以动态覆盖整个环境。我尚未使用Eclipse对其进行测试,但是CI可以正常工作。

我正在使用此init.gradle文件(为用户部署在CI服务器上和在GRADLE_USER_HOME中的此内部网络中,用于用户)清除build.gradle中定义的存储库列表并覆盖pluginMangement部分中的存储库在settings.gradle中也是如此。

相关链接:Gradle Docssimilar issue

© www.soinside.com 2019 - 2024. All rights reserved.