Java Gradle-不在多模块项目中创建父构建

Java Gradle-不在多模块项目中创建父构建,java,build,gradle,Java,Build,Gradle,我的项目结构如下: ┌project │ ├── build.gradle ├── module 1 │ │ │ ├── build.gradle │ ├── module 1.1 │ └── module 1.2 │ └── module 2 │ ├── build.gradle ├── module 2.1 └── module 2.2 我的问题是,我已经为项目、模块1和模块2创建了构建。但我不需要它们,我只需要模块1.1

我的项目结构如下:

┌project
│
├── build.gradle
├── module 1
│    │
│    ├── build.gradle
│    ├── module 1.1
│    └── module 1.2
│  
└── module 2
     │
     ├── build.gradle
     ├── module 2.1
     └── module 2.2
我的问题是,我已经为项目、模块1和模块2创建了构建。但我不需要它们,我只需要模块1.1、1.2、2.1和2.2的构建

在子模块build.gradle中:

project(":modules 1") {
    ext.buildables = [
            project(':modules-1:modules.1.1'),
            project(':modules-1:modules.1.2')]    
}

project(":modules-1:modules.1.1") {

    dependencies {
        ...
    }
}
subprojects {
    apply plugin: 'java'
    sourceCompatibility = 1.6
    targetCompatibility = 1.6
}
在root build.gradle中:

project(":modules 1") {
    ext.buildables = [
            project(':modules-1:modules.1.1'),
            project(':modules-1:modules.1.2')]    
}

project(":modules-1:modules.1.1") {

    dependencies {
        ...
    }
}
subprojects {
    apply plugin: 'java'
    sourceCompatibility = 1.6
    targetCompatibility = 1.6
}
有什么想法吗

编辑:

运行gradle build后,有以下目录结构:

┌project
│
├── build.gradle
├── build (not wanted)
├── module 1
│    │
│    ├── build (not wanted)
│    ├── build.gradle
│    ├── module 1.1
|    |    |
│    |    └── build
│    └── module 1.2
|         |
│         └── build
│  
└── module 2
     │
     ├── build (not wanted)
     ├── build.gradle
     ├── module 2.1
     |    |
     |    └── build
     └── module 2.2
          |
          └── build
如何摆脱这些不想要的文件夹,它们里面都有1kb大小的罐子。

多亏了@Opal

将以下内容添加到所有项目中,以跳过空罐子

jar {
    onlyIf { !sourceSets.main.allSource.files.isEmpty() }
}
多亏了@Opal

将以下内容添加到所有项目中,以跳过空罐子

jar {
    onlyIf { !sourceSets.main.allSource.files.isEmpty() }
}

对我来说,这个问题还不清楚。@Opal看看现在是否更容易理解是的,现在好多了。也许这个链接可以帮助你:?对我来说这个问题还不清楚。@Opal看看现在是否更容易理解是的,现在好多了。也许此链接将帮助您:?另一个选项是在生成完成时删除根级别的生成目录。这是我必须使用的解决方案,因为我在父模块源代码中保留的所有子模块之间共享了类,但是构建为父模块创建了一个JAR,而父模块不应该存在。答案是使父级
build.gradle
包含以下内容:
gradle.buildFinished{project.buildDir.deleteDir()}
。有关更多信息,请参阅此答案:另一个选项是在生成完成时删除根级别的生成目录。这是我必须使用的解决方案,因为我在父模块源代码中保留的所有子模块之间共享了类,但是构建为父模块创建了一个JAR,而父模块不应该存在。答案是使父级
build.gradle
包含以下内容:
gradle.buildFinished{project.buildDir.deleteDir()}
。有关更多信息,请参阅此答案: