我有一个子项目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'
}
}
}
}
}
但是没有编译。
有任何建议如何实现这一目标?
答案 0 :(得分:2)
不确定原因,但它的工作方式如下:
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。