others - 如何将参数传递到gradle任务

我有一个gradle构建脚本,试图将Eric Wendelin的css插件包括在内http://eriwen.github.io/gradle-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文件,但是没有合并到一个文件中(我没有使用CombineCss任务),

像这样


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()
}

任何帮助,非常感激;

时间:

我想,你可能想把每个css集合的压缩看作一个单独的任务


task minifyBrandACss(type: com.eriwen.gradle.css.tasks.MinifyCssTask) {
 source ="src/main/webapp/css/brandA/styles.css"
 dest ="${buildDir}/brandA/styles.css"
}

etc etc

你可以在调用Gadle时-P传递参数。

来自gradle Documentation

--project-prop设置根项目的项目属性,例如-Pmyprop=myvalue .请参见第14.2节,"gradle属性和系统属性"

看看这个build.gradle


task printProp << {
 println customProp
}

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


$ gradle -PcustomProp=myProp printProp
:printProp
myProp

BUILD SUCCESSFUL

Total time: 3.722 secs

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

...