在同一个文件系统上的多个开发人员之间共享Gradle用户主页有什么缺点吗?
我们的目标是使用本地Gradle缓存来节省磁盘空间。 Gradle用户指南建议the cache is safe for concurrent access。目前似乎没有任何方法可以独立于Gradle用户主目录配置缓存位置,因此基本上问题归结为共享Gradle用户主目录(默认为~/.gradle/
)。在快速测试中,我们可以验证同一用户的多个并发进程确实可以在单个Gradle用户家中完美运行。
但多个用户可能有任何问题吗?我可以想象许可问题可能会成为一个问题。有没有人有这样的设置经验? Gradle用户主页中是否有任何不应共享的文件?
很明显,对于共享用户主页(例如个性化init scripts或gradle.properties
),某些特定于用户的配置将无法再进行。您是否有更好的建议使用本地Gradle缓存来节省磁盘空间?这样的建议可以以某种方式自动将每个用户的缓存修剪为asked in this SO question。
我们使用Gradle处理更大的二进制文件(目前每个约500M并且正在增长)。这包括将它们从其他大型二进制工件构建为输入依赖项。我们将构建工件存储在Artifactory中;上传和下载非常顺利。但是,由于我们每周有大约50个混合和匹配许多文件的开发人员,因此每个开发人员的本地Gradle缓存增长相当快。由于所有开发人员都在同一个文件系统上工作,我们考虑为所有开发人员提供共享的Gradle缓存以节省磁盘空间。
答案 0 :(得分:3)
我刚刚找到了Gradle开发人员Stefan Oehme wrt的this comment。共享Gradle用户主页:
Gradle进程将保持锁定(如果它们是无竞争的)以获得性能。争用是通过进程间通信来宣布的,当进程在Docker容器中被隔离时,这种通信不起作用。
更明确地说,他在a follow-up comment中指出(由我强调):
可能还有其他问题我们尚未发现,因为在计算机之间共享用户主页不是我们为设计的用例。
换句话说:Gradle目前尚未正式支持在不同的计算机上共享Gradle用户主页甚至只是缓存部分。
答案 1 :(得分:0)
当你引用~/.gradle/
时,我想你是在* nix机器上?
然后只需将缓存文件夹设置为某个共享文件夹的符号链接,您就可以了。缓存将被共享,每个开发者仍然拥有自己的Gradle用户家。