如何在下面的示例中使compilerConstants可见于编译任务?它适用于foo任务。
或许有人可以提出更好的方法来做到这一点?基本上我需要能够设置桌面或移动编译,它只有那些参数不同。
编辑:这是我的情况的一个非常简化的例子。我的实际编译任务有20多行东西,只有compilerConstants是3个不同设置之间的一个变量。
String AIR_HOME = System.getenv('FLEX_HOME')
def compilerConstants = []
task setupDesktop << {
compilerConstants.push('-define=BUILD::desktop,true')
}
task setupMobile << {
compilerConstants.push('-define=BUILD::desktop,false')
}
task compile (type: JavaExec) {
main = "com.adobe.flash.compiler.clients.MXMLC"
classpath = files("${AIR_HOME}/lib/compiler.jar")
def argsList = []
// compiler constants
argsList = (argsList << compilerConstants).flatten()
println 'compile args: ' + argsList
args = argsList
}
task foo << {
def argsList = []
argsList = (argsList << compilerConstants).flatten()
println 'foo args: ' + argsList
}
答案 0 :(得分:0)
设置compilerConstants
是一种配置行为,因此不应由任务完成。解决方案是声明两个JavaExec
任务,&#34; compileDesktop&#34;和&#34; compileMobile&#34;。可以考虑共性,但在这种情况下可能不值得。