【发布时间】:2013-12-23 00:49:23
【问题描述】:
我有一个 gradle 构建脚本,我试图在其中包含 Eric Wendelin 的 css 插件 - http://eriwen.github.io/gradle-css-plugin/
它很容易实现,而且因为我只想要缩小(而不是合并和 gzipping),所以构建脚本的相关部分如下所示:
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 文件需要缩小,但没有合并到一个文件中(因此我没有使用 combineCss 任务)
我想做的是使 minifyCss 任务引用某种类型的变量的源和目标属性(假设这是正确的术语?) - 要么变量传递到签名中的任务,要么全局变量,什么的……
我猜是这样的(这是行不通的):
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()
}
对于我的一生,我无法弄清楚如何调用任务并传递变量:(
非常感谢任何帮助;
【问题讨论】:
标签: variables groovy parameters gradle