gradle - 如何在单个 gradle 构建中拥有多个文件系统?

标签 gradle

首先,我是 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/

相关文章:

java - 如何从gradle中排除一个jar

android - 生成签名的APK时出错:重复项:android/support/v7/util/ThreadUtil $

gradle - Gradle-如何在一个任务中将一组文件作为一个线程执行?

安卓工作室 : Project refresh failed. 。打开 zip 文件时出错

gradle - CodeNarc失败,DuplicateStringLiteral规则中的ignoreStrings中包含的字符串

android - Admob 梯度依赖

gradle - 如何使用单个 build.gradle 配置向 kotlin 多平台项目添加依赖项

command-line - 子项目的gradle命令行属性

unit-testing - Jacoco覆盖率报告,从覆盖范围中排除方法

Android Studio 无法在任务 ':project:dexDebug' 上调用 IncrementalTask​​.taskAction()