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

标签 java build gradle

关闭。这个问题需要details or clarity .它目前不接受答案。












想改进这个问题?通过 editing this post 添加详细信息并澄清问题.

7年前关闭。




Improve this question




我有这样结构的项目:

┌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 {
        ...
    }
}

在根 build.gradle 中:
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 的 jars。

最佳答案

感谢@Opal 提供this discussion 的链接.
将以下内容添加到 allprojects ,它会跳过空 jar 。

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

关于java - Gradle - 不要在多模块项目中创建父构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25441702/

相关文章:

java - 从 windows-1256 转换为 UTF-8 会导致标点符号问题

c# - 通过命令行构建 Visual Studio 项目

sql - 合并数据库结构从一台服务器更改到另一台服务器

javascript - Gradle 中的缩小任务

android - Gradle 恶魔启动数百个虚拟机

java - 应用程序启动时键盘会自动显示吗?

java - Tomcat:无法找到或加载

java - Android:跨类启动监听器

vue.js - 是否可以在没有 vue-cli 的情况下构建 vue 应用程序?

java - 用于附加 API 的 native 库在此 JRE 中不可用