将 Gradle 项目对 Maven 工件的依赖重定向到另一个 Gradle 项目

Redirect Gradle project dependency on Maven artifact to another Gradle project

有什么方法可以将 Gradle 项目对 Maven 工件坐标的依赖性重定向到同一构建中另一个 Gradle 项目的输出?

我看不出依赖 project(‘:xyz’) 之类的东西有什么意义,因为这需要项目 :xyz 在我的文件系统上并构建,并且引用项目知道:xyz 也在同一版本中。对我来说,依赖于 Maven 工件坐标并使用从指定匹配坐标的同一构建中的项目构建的工件比从存储库下载工件更有意义。

如果这个功能存在,或者如果我自己制作它,我想它会被实现为一个对象,可以在 repositories 闭包中列在所有其他存储库之前,例如 mavenCentral().

您可以在本地存储库中发布 xyz

在项目xyz中,使用这个插件:

apply plugin: 'maven-publish'

还有 运行 gradle publishToMavenLocal

然后,在 "root" 项目中,另外使用本地存储库并使用 xyz 作为常规依赖项:

repositories {
    mavenLocal()
}

dependencies {
    compile('your.company:xyz:1.0.0')
}

您要找的是composite builds。它将允许您定义构建包含另一个构建,因此 Gradle 计算出依赖符号 group:name:version 被包含的构建替换。

但是,当项目属于同一个单元时,我仍然建议使用 project(:xyz) 表示法,这通常是从源代码管理中进行一次签出。