gpt4 book ai didi

variables - 如何将参数或参数传递到 Gradle 任务中?

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

我有一个 Gradle 构建脚本,我试图将 Eric Wendelin's CSS plugin 包含在其中.

它很容易实现,而且因为我只想要缩小(而不是组合和压缩),所以我得到了构建脚本的相关部分,如下所示:

minifyCss {
source = "src/main/webapp/css/brandA/styles.css"
dest = "${buildDir}/brandA/styles.css"
yuicompressor {
lineBreakPos = -1
}
}

war {
baseName = 'ex-ren'
}

war.doFirst {
tasks.myTask.minifyCss.execute()
}

这很完美 - 当我运行 gradle war 任务时,它调用 minifyCss 任务,获取源 css 文件,并在 buildDir 中创建缩小版本

但是,我有一些 css 文件需要 minify-ing,但不合并为一个文件(因此我没有使用 mergeCss 任务)

我想要做的是创建某种 minifyCss 任务引用变量的 source 和 dest 属性(假设这是正确的术语?) - 或者是在签名中传递到任务的变量,或者是全局变量变量,或者其他什么...

我猜是这样的(这不起作用):

minifyCss(sourceFile, destFile) {
source = sourceFile
dest = destFile
yuicompressor {
lineBreakPos = -1
}
}

war {
baseName = 'ex-ren'
}

war.doFirst {
tasks.myTask.minifyCss.execute("src/main/webapp/css/brandA/styles.css", "${buildDir}/brandA/styles.css")
tasks.myTask.minifyCss.execute("src/main/webapp/css/brandB/styles.css", "${buildDir}/brandB/styles.css")
tasks.myTask.minifyCss.execute("src/main/webapp/css/brandC/styles.css", "${buildDir}/brandC/styles.css")
}

这也不起作用:

def sourceFile = null
def destFile = null

minifyCss {
source = sourceFile
dest = destFile
yuicompressor {
lineBreakPos = -1
}
}

war {
baseName = 'ex-ren'
}

war.doFirst {
sourceFile = "src/main/webapp/css/brandA/styles.css"
destFile = "${buildDir}/brandA/styles.css"
tasks.myTask.minifyCss.execute()
}

我一生都无法弄清楚如何调用任务并传递变量:(

非常感谢任何帮助;

最佳答案

您应该考虑在调用 Gradle 时传递 -P 参数。

来自Gradle Documentation :

--project-prop Sets a project property of the root project, for example -Pmyprop=myvalue. See Section 14.2, “Gradle properties and system properties”.

考虑这个 build.gradle

task printProp << {
println customProp
}

调用 Gradle -PcustomProp=myProp 将给出以下输出:

$ gradle -PcustomProp=myProp printProp
:printProp
myProp

BUILD SUCCESSFUL

Total time: 3.722 secs

这是我发现传递参数的方式。

关于variables - 如何将参数或参数传递到 Gradle 任务中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20410854/

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