首页 > 解决方案 > Gradle 多项目 build.gradle 遍历依赖

问题描述

我有一个相当大的build.gradle文件,其中有 28 个 Gradle 项目。我在遍历依赖项方面遇到了一些问题。例如,我必须进行项目Harbor.ClientHarbor.Models. 我的客户依赖于我的模型项目。但是,我使用客户端的项目也需要定义对模型项目的依赖,而不是仅仅从客户端项目中获取。

例子

project(':Harbor.Client') {
    dependencies {
        implementation project(':Harbor.Models')
    }
}
project(':Harbor.Models') {
    dependencies {
    }
}
project(':Application') {
    dependencies {
        implementation project(':Harbor.Client')
        implementation project(':Harbor.Models')
    }
}

有没有我可以设置的设置,以便Application项目不需要设置直接依赖Harbor.Models

project(':Harbor.Client') {
    dependencies {
        implementation project(':Harbor.Models')
    }
}
project(':Harbor.Models') {
    dependencies {
    }
}
project(':Application') {
    dependencies {
        // Gets ':Harbor.Models' though ':Harbor.Client'
        implementation project(':Harbor.Client')
    }
}

标签: gradle

解决方案


我发现答案是使用 API 依赖而不是实现

project(':Harbor.Client') {
    apply plugin: 'java-library'

    dependencies {
        implementation project(':Harbor.Models')
    }
}
project(':Harbor.Models') {
    apply plugin: 'java-library'

    dependencies {
    }
}
project(':Application') {
    dependencies {
        // Gets ':Harbor.Models' though ':Harbor.Client'
        api project(':Harbor.Client')
    }
}

推荐阅读