我有一个如下的多项目:
- 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来实现,还是可以以一种我可能错过的聪明方法来实现?
最后,我能够实现真正接近我想要的目标。gradle中有一个初始化脚本,它可以动态覆盖整个环境。我尚未使用Eclipse对其进行测试,但是CI可以正常工作。
我正在使用此init.gradle
文件(为用户部署在CI服务器上和在GRADLE_USER_HOME中的此内部网络中,用于用户)清除build.gradle
中定义的存储库列表并覆盖pluginMangement
部分中的存储库在settings.gradle
中也是如此。
相关链接:Gradle Docs,similar issue