0

我有一个多项目如下:

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

在这些中,我使用依赖项和插件的默认存储库。我们将 Eclipse 与Buildship一起使用,直到现在解决方案大多是使用Refresh Gradle Project.

问题:一些同事和我们位于不同网络上的 CI 服务器也必须为所有依赖项和插件使用自定义存储库。这个虚拟仓库还需要身份验证、证书和代理来增加趣味性。

尝试在 中指定两个存储库build.gradle,但订购它们没有帮助。第一个失败将导致构建失败,其中一个将始终失败,具体取决于网络。考虑将变量作为可以从文件中覆盖/读取的第一行,但由于pluginManagement必须是第一个元素settings.gradle并且在任何事情之前进行评估,这个选项似乎也失败了。

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

除了创建多组这些文件(例如build.1.gradle/并在每次构建之前使用它们的内容settings.1.gradle覆盖标准build.gradle/ )之外,我真的没有其他办法。settings.gradle

这可以通过 Gradle 实现还是以我可能错过的智能方式实现?

4

1 回答 1

0

最后,我能够实现非常接近我想要的东西。gradle 中有一个初始化脚本,可以动态覆盖整个环境。我还没有使用 Eclipse 对其进行测试,但是 CI 运行良好。

我正在使用这个init.gradle文件(部署在 CI 服务器上和 GRADLE_USER_HOME 的内部网络中供用户使用)来清除定义的存储库列表build.gradle并覆盖pluginMangement部分中的存储库settings.gradle

相关链接:Gradle Docs类似问题

于 2019-12-13T15:22:33.900 回答