gpt4 book ai didi

groovy - Gradle将参数传递给插件任务

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

我有来自gradle-js-plugin的任务:

combineJs {
source = sourceJs
dest = file(destDirJs + "/all.js")
}

minifyJs {
source = combineJs
dest = file( destDirJs + "/all-min.js")
closure {
warningLevel = 'QUIET'
}
}

gzipJs {
source = minifyJs
dest = file(destDirJs + "/all-gzip-min.js")
}

我的问题是因为我必须多次更改sourceJs和destDirJs的值。所以我不想有很多重复的代码。

所以我正在尝试这样的事情:
task gzipAll {
sourceJs = ["WebContent/plugin/bootstrap-modal/js/bootstrap-modalmanager.js", "WebContent/plugin/bootstrap-modal/js/bootstrap-modal.js", "WebContent/js/bootstrap-dropdown.js", "WebContent/js/mandatory/bootstrap-analytics-setup.js"]
destDirJs = "WebContent/js/mandatory"
tasks.combineJs().execute;
tasks.minifyJs().execute;
tasks.gzipJs().execute;

//Here I need to change sourceJs and destDir and call all the task again.
}

实际上,我在黑暗中进行了远距离射击,但我遇到了一个异常(exception):
Caused by: groovy.lang.MissingPropertyException: Could not find property 'sourceJs' on task ':combineJs'.

我也尝试过类似的方法,但是没有用。有一些异常(exception):
combineJs(sourceJs, destDirJs) {
source = $sourceJs
dest = file($destDirJs + "/all.js")
}

有更多经验的人可以帮助我解决这个问题吗?这有点简单吧?
谢谢。

最佳答案

我尚未对其进行测试,但是由于gradle脚本是常规的脚本,因此您应该可以执行类似的操作。


['dir1', 'dir2'].eachWithIndex { dir, index ->
task "combineJs_$index"(type: combineJs) {
source = dir
dest = file(destDirJs + "/$index.js")
}

task "minifyJs_$index" (type: minifyJs) {
source = "combineJs_$index"
dest = file( destDirJs + "/$index-min.js")
closure {
warningLevel = 'QUIET'
}
}

task "gzipJs_$index" (type: gzipJs) {
source = "minifyJs_$index"
dest = file(destDirJs + "/$index-gzip-min.js")
}
}

当然,您需要正确的TaskType,并且可能需要更改输入,但这可以助您一臂之力。

关于groovy - Gradle将参数传递给插件任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22641195/

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