jenkins - Gradle - 不同的任务使用不同的参数

标签 jenkins gradle

我有两个任务,task_1应该压缩png文件,task_2不应该压缩png文件,所以我想添加一个参数来控制它。

project.ext.set("compressPngs",  1);
task taskCompressPngs(type:Exec){
    commandLine "myshell.sh"
    args compressPngs
}

task task_1(dependsOn:'taskCompressPngs'){}
task task_2(dependsOn:'taskCompressPngs'){}

gradle.taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask(task_1)) 
    {
        compressPngs=1
    }
    if (taskGraph.hasTask(task_2)) 
    {
        compressPngs=0
    }
}

但是当我运行task_1或task_2时,在任务'taskCompressPngs'中,传递给我的脚本'myshell.sh'的'compressPngs'总是1,为什么?怎么解决?

最佳答案

taskCompressPngs 在配置值更改之前进行配置。条件配置很少是一个好的解决方案。更好的方法是声明两个 Exec 任务。

关于jenkins - Gradle - 不同的任务使用不同的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21774301/

相关文章:

jenkins - 从 Jenkins 凭证管理器导出 keystore

jenkins - 如何重置 Jenkins 的内部版本号?

Jenkins Pipeline - 在阶段之间传递 Artifact URL

android - 在android studio中删除一个依赖项的未使用文件

python - 触发 Jenkins 的命令不起作用

node.js - npm install 命令作为 root 用户工作正常,但如果命令作为 jenkins 用户执行则抛出错误

gradle - 如何提供命令行参数来构建任务

gradle - 运行gradle任务并将其返回值保存到shell脚本变量中

android - Firebase Cloud Messaging FCM 构建错误无法添加任务 ':processDebugGoogleServices',因为该名称的任务已存在

intellij-idea - IntelliJ不断恢复我的更改吗?