Gradle:将战争复制到现有的tomcat
/path/tomcat-[version]/webapps
版本可以是任何版本,我不想对其进行硬编码。 / path下只有一个tomcat。
task copyWar(type: Copy) {
from warPath
destinationDir "/path/tomcat-*/webapps"
}
评估期间,tomcat目录不存在。
尝试:
task copyWar(type: Copy) {
from warPath
doFirst {
// find tomcat directory name, set tomcatName
destinationDir file("/path/$tomcatName/webapps")
}
}
Gradle抱怨未设置destinationDir。显然,在doFirst {}中设置它以进行最新检查为时已晚。
答案 0 :(得分:0)
Gradle脚本基本上就是Groovy脚本,你可以这样做:
task copyWar(type:Copy) {
from warPath
def tomcatDir = new File("/path").listFiles().find {it.name.startsWith("tomcat-")}
into new File(tomcatDir, "webapps")
}
请注意,此代码段将在配置阶段执行,并且包含文件系统访问权限,因此可能会导致配置阶段性能下降