Gradle 分发插件:将子项目中的文件添加到单独的文件夹中
Gradle distribution plugin: add files from subprojects in separate folders
我有一个包含子项目 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")
可以找到Demo here。
我有一个包含子项目 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")
可以找到Demo here。