如何在多项目Gradle中为子项目定义不同的依赖项? (JAVA)

时间:2017-12-12 17:05:34

标签: java gradle grpc-java

我有一个包含不同子项目的项目,我想完成以下任务:

  • (根)
    • 客户端
    • 模块A
    • 模块B
    • 模块C
    • 模型

我想提出

build.gradle

表示模块A,B和C.

现在我的根目录subprojects{ apply plugin: 'java' sourceCompatibility = 1.8 group 'project' version '0.0.1-SNAPSHOT' jar { manifest { attributes 'Main-Class': "com.project.${project.name}.App" } doFirst { from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } } } } repositories { mavenCentral() mavenLocal() } dependencies { testCompile 'junit:junit:4.12' testCompile 'org.mockito:mockito-core:1.9.5' } }

中有以下内容
subprojects

所以每个子项目都使用java插件,并且具有定义依赖项和jar任务。 我怎样才能为一些子项目设置第一个块?

我尝试使用the documentation中的变量,但我无法在Message: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Filename: libraries/Email.php 块中访问它。

提前谢谢你。我对正确使用Gradle非常感兴趣,并且在简单的Android / Java项目之外进入它有点困难。随意包括我应该阅读的任何文件:)

修改:

谢谢。如果我之前没有搜索过,我就不会在这里发布。显然我错过了关键字“子集”,他会给我链接的解决方案。

1 个答案:

答案 0 :(得分:1)

此处描述了一个解决方案:https://discuss.gradle.org/t/configure-only-subset-of-subprojects/5379/3

您可以使用项目列表运行configure()。

project.ext {
    subprojectList = subprojects.findAll{
        it.name == 'subprojectA' ||
        it.name == 'subprojectB' ||
        it.name == 'subprojectC'
    }
}
  configure(project.subprojectList) {
    // insert your custom configuration code
}

configure([project(':a'), project(':b'), project(':c')]) {
    // configuration
}