java - Gradle - 子项目排除父定义的项目依赖

标签 java gradle dependency-management

如何排除父定义的 compile project 依赖项?

模块结构如下:

- build.gradle
- settings.gradle
- MAIN_MODULE_1
  - build.gradle
- MODULE1
  - build.gradle
- MODULE2
  - build.gradle
- MODULE3
  - build.gradle
- MODULE4
  - build.gradle

依赖模型应该是:

- MODULE1 <- MAIN_MODULE_1
- MODULE2 <- MAIN_MODULE_1
- MODULE3 <- MAIN_MODULE_1
- MODULE4 <- MAIN_MODULE_1

也就是说,有

// build.gradle
subprojects {
  apply plugin: 'java'
  dependencies {
    compile project('MAIN_MODULE_1')
  }
}

// settings.gradle
include ':MAIN_MODULE_1'
include ':MODULE1'
include ':MODULE2'
include ':MODULE3'
include ':MODULE4'

将创建 MAIN_MODULE_1 对自身的循环依赖,这是错误的。

并且在每个模块中都有依赖(总数不是 4,而是 120)对我来说似乎是错误的。

最佳答案

您可以使用配置 block :

project(':MAIN_MODULE_1') {
  apply plugin: 'java'
}

configure(subprojects - project(':MAIN_MODULE_1')) {
  apply plugin: 'java'
  dependencies {
    compile project('MAIN_MODULE_1')
  }
}

答案来自另一个问题 Gradle exclude plugin in main project for specific subproject(s)

关于java - Gradle - 子项目排除父定义的项目依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22387492/

相关文章:

java - 在 Java : Is my benchmarking code wrong? 中对小型数组与列表进行基准测试

java - Highcharts 未显示在 jEditorPane 中

java - 组织.hibernate.MappingException : Foreign key XXX must have same number of columns as the referenced primary key YYY

groovy - 在星云测试下运行的自定义Gradle任务无法查看创建的目录

android - Gradle 同步失败 : Could not find com. android.tools.build :gradle:5. 5.1

android - Gradle - 带有库的 Android 应用程序的依赖替换

java - 在同一个包中找不到类

android - 在我的应用程序中运行不同的 App 类(用于调试)

java - 依赖项依赖于项目中已使用的库的旧版本

java - 如何从依赖中获取子依赖或版本?