gpt4 book ai didi

git - 运行exec任务作为配置阶段的输入

转载 作者:行者123 更新时间:2023-12-03 05:08:04 25 4
gpt4 key购买 nike

我想使用Gradle在 list 文件中写入版本字符串。为此,我使用git describe。为了获得此字符串,我编写了一个exec任务:

task gitVersion(type: Exec) {
commandLine 'git', 'describe'
standardOutput = new ByteArrayOutputStream()
ext.output = {
return standardOutput.toString()
}
}

如果我用它来处理资源,它就可以工作,例如:
processResources {
dependsOn gitVersion
filesMatching('build.properties') {
expand 'buildVersion': "${gitVersion.output()}"
}
}

不幸的是,如果我在 jar任务中尝试此操作,将无法正常工作。
jar {
manifest {
attributes(
// Other attributes
'Implementation-Version': "${gitVersion.output()}" // Not working
)
}
}

据我了解 Gradle Build Lifecycle,这是因为 jar任务是“配置阶段”,而 exec任务是“执行阶段”。

有什么方法可以在配置阶段执行 exec任务?

最佳答案

您可以使用“GString惰性评估” Groovy功能(请参阅一些详细信息/示例here):

jar{
manifest {
attributes(
'Implementation-Version': "${->gitVersion.output()}" // use " ${->prop} syntax for lazy evaluation
)
}
}

关于git - 运行exec任务作为配置阶段的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53851245/

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