groovy - Gradle发行插件:将子项目中的文件添加到单独的文件夹中

标签 groovy gradle build.gradle gradle-plugin

我有一个带有子项目projectB和projectC的多项目版本(projectA)。每个子项目都有我想添加到zip中的资源。 projectB的资源应位于zip中名为projectB的文件夹中。

我正在使用分发插件来创建zip。这段代码有效,但是无论子项目的数量和名称如何,我都会使用一些代码。

distributions {
    release {
        baseName 'release'
        contents {
            into('projectB') {
                from 'projectB/src/main/resources/'
            }
            into('projectC') {
                from 'projectC/src/main/resources/'
            }
        }
    }
}

我尝试了以下方法:
distributions {
    release {
        baseName 'release'
        contents {
            subprojects.each {
                p -> into(p.name + '-resources') {
                        from p.projectDir + '/src/main/resources/config'
                    }
            }
        }
    }
}

但这不能编译。

任何建议如何做到这一点?

最佳答案

不知道为什么,但是它可以通过以下方式工作:

apply plugin: 'distribution'

distributions {
  release {
    baseName 'release'
    contents {
      subprojects.each { p ->
        into("${p.name}-resources") {
          from("${p.projectDir}/src/main/resources/config")
        }
      }
    }
  }
}

好的,我知道了。这条线引起了问题:
from(p.projectDir + "/src/main/resources/config")

您不能将File添加到String。因此,两者都能胜任:
from(p.projectDir.toString() + "/src/main/resources/config")
from("${p.projectDir}/src/main/resources/config")

可以在here上找到演示。

关于groovy - Gradle发行插件:将子项目中的文件添加到单独的文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33867965/

相关文章:

java - 在 IntelliJ IDEA 13 中运行编译的 Groovy 代码时出现运行时错误

arrays - Groovy:从其自身的列表中删除和对象?

gradle - 在Gradle中动态添加依赖项?

android - Android-构建失败,出现异常

android - Gradle 产品 flavor 和构建类型

html - 防止Grails输入标签添加id属性

android - 无法通过 Ubuntu 终端构建 Android Studio 项目

java - Android gradle 在创建 androidx 项目后无法立即解析核心

android gradle com.android.support 库版本问题

android - Android和Accont Kit:设置默认语言