在Gradle中,我目前正在做这样的事情:
task generateConfiguration(type: Copy) {
into "$buildDir/generatedConfiguration"
from "src/main/config-templates"
expand(loadConfig())
}
loadConfig()
正在使用Groovy ConfigSlurper
加载基于Groovy的配置,并返回Map
以供“expand”方法使用。
这种方法可以找到一个警告。
在配置阶段调用loadConfig()
。
如果我想将loadConfig()
进程推迟到执行阶段,我不能用这种方法来做。 expand()
方法不接受关闭。
任何好的建议,以便我可以将loadConfig推迟到执行阶段?
我一直在寻找一个简单的解决方案已经没有运气了。
现在,我只有两条可能的路线:
1)实现一个map对象,它将推迟loadConfig()
操作,直到模板引擎访问该映射
2)重新实现复制任务,以便它可以关闭。
我正在努力寻找更简单的选择..
答案 0 :(得分:0)
也许:
task generateConfiguration {
doLast {
copy {
into "$buildDir/generatedConfiguration"
from "src/main/config-templates"
expand(loadConfig())
}
}
}
这样就可以在执行阶段扩展参数。