首先,我是 Gradle 和 Groovy 的菜鸟。 :-)
我正在尝试将现有项目从基于 ant 的构建移植到使用 Gradle。我遇到的问题是我的源代码存储在两个不同的文件系统中(都是 git repos)。我已经设法让 Gradle 子项目配置适用于同一文件系统中的模块,但我似乎无法跨两个不同的文件系统链接子项目。我需要文件系统“A”(我的应用程序仓库)中的项目依赖于文件系统“B”(我的库仓库)中的项目。
有什么方法可以让 Gradle 跨文件系统边界处理依赖关系?
任何帮助将不胜感激...
最佳答案
当您说文件系统时,我猜您的意思是一旦 checkout 它们就位于两个不同的文件夹中。
有两种方法可以实现您想要的:
一种是构建项目 B 并将 Jar 发布到项目 A 可以访问的“存储库”中。我通过将 jar 从 projectB/build/libs 复制到 projectA/lib 文件夹并将该 lib 文件夹添加为项目 A 的构建文件中的存储库来实现这一点,如下所示:
repositories {
flatDir {
dirs 'lib'
}
}
这是一个小手册,但它的伎俩。
另一种方法是使用 Gradle 的新 Composite Build特征。它允许您将项目 A 配置为包含项目 B。这避免了手动复制 jar。我自己没有使用过这种方法,因为它很新,所以我不能保证它的效果如何。
关于gradle - 如何在单个 gradle 构建中拥有多个文件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40286273/