gpt4 book ai didi

spring-boot - Gradle变量不在复制和重命名任务的范围内

转载 作者:行者123 更新时间:2023-12-03 05:07:20 24 4
gpt4 key购买 nike

我正在尝试使用一个变量(从共享文件填充)来添加一个版本号,该版本号是由Spring Boot的bootWar插件创建的。但是,似乎该变量不在范围内。我在bootWar中添加了doFirst,以显示在创建 war 之前确实已填充了变量。 This question建议使用项目,但这也不起作用(请在下面第二次尝试)。在构建过程的这一点上不可能使用变量吗?

task populateBuildVersion (dependsOn: ["buildVersionFromFile", "buildVersionPlaceholder"]){
doLast {
project.ext.buildVersion = buildVersion
println "------------------------------------------------------------------"
println "| Build version: $buildVersion"
println "------------------------------------------------------------------"
}
}

bootWar {
into('') {
from "${project(':web').projectDir}/src/main/webapp"
// PICK ONE, COMMENT THE OTHERS:
rename "webpacked.js", buildVersion // fails at task runtime with "Caused by: java.lang.NullPointerException: replacement"
rename "webpacked.js", project.buildVersion // fails at initialization with "Could not get unknown property 'buildVersion' for root project 'myproject' of type org.gradle.api.Project."
rename "webpacked.js", "${buildVersion}.js" // results in null.js
}
doFirst {
println "in bootWar dofirst: ${buildVersion}" // OK
println buildVersion // OK
println project.buildVersion // OK
}
}
tasks.bootWar.dependsOn(populateBuildVersion)

输出:
> Task :populateBuildVersion
------------------------------------------------------------------
| Build version: xyz_7.8.2_2417
------------------------------------------------------------------

> Task :bootWar
in bootWar dofirst: xyz_7.8.2_2417
xyz_7.8.2_2417
xyz_7.8.2_2417

> Task :bootWar FAILED (for various reasons)

最佳答案

使用以Closure或rename作为参数的Transformer<String, String>方法。执行任务时将调用闭包(或Transformer)。在您的版本中,配置任务后将访问该属性,因此尚未执行populateBuildVersion任务:

from("${project(':web').projectDir}/src/main/webapp") {
rename {
it == 'webpacked.js' ? "${buildVersion}.js" : null
}
}

关于spring-boot - Gradle变量不在复制和重命名任务的范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55266841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com