gpt4 book ai didi

gradle - 如何使变量对 Gradle 中的 JavaExec 任务可见

转载 作者:行者123 更新时间:2023-12-03 06:20:10 26 4
gpt4 key购买 nike

在下面的示例中,如何使 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
}

最佳答案

设置compilerConstants是一种配置行为,因此不应由任务完成。解决方法是声明两个JavaExec任务,“compileDesktop”和“compileMobile”。可以排除共性,但在这种情况下可能不值得。

关于gradle - 如何使变量对 Gradle 中的 JavaExec 任务可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26385170/

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