【问题标题】:can't run gradle task from other task无法从其他任务运行 gradle 任务
【发布时间】:2018-10-05 10:10:40
【问题描述】:

我有一个 Jenkins Job 正在运行一些 gradle 任务:

 gradle clean -Pendpoint=qab assembleFromJenkinsJob

这是任务本身:

task assembleFromJenkinsJob << {

    logger.lifecycle("Value of 'endpoint': ${endpoint}")
    if (String.valueOf(endpoint).equalsIgnoreCase('qab')) {
        assembleJenkinsQa
    } else if (String.valueOf(endpoint).equalsIgnoreCase('prod')) {
        assembleRelease
    }
    else
        assembleJenkinsQa
}

任务assembleFromJenkinsJob正在运行:

:app:assembleFromJenkinsJob
Value of 'endpoint': qab

但是assembleJenkinsQaassembleRelease 没有运行。

我什至试着这样做assembleRelease.execute() 但什么也没发生。

【问题讨论】:

    标签: android gradle task


    【解决方案1】:

    您永远不应该直接调用任务。此外,您不需要调用任务,而是定义依赖项。最后,在 action (&lt;&lt;) 中运行任务为时已晚。

    告诉我这是可行的:

    task assembleFromJenkinsJob {
        logger.lifecycle("Value of 'endpoint': ${endpoint}")
    
        if (String.valueOf(endpoint).equalsIgnoreCase('qab')) {
            dependsOn assembleJenkinsQa
        } else if (String.valueOf(endpoint).equalsIgnoreCase('prod')) {
            dependsOn assembleRelease
        } else
            dependsOn assembleJenkinsQa
    }
    

    【讨论】:

    • 谢谢先生。它说:在我删除
    • 尝试使用-Pendpoint=qab,然后在脚本中使用project.endpoint
    • 哇,这成功了,非常感谢。我绝对应该了解 gradle 构建系统
    【解决方案2】:

    我建议使用finalizedBy

    task assembleFromJenkinsJob {
        def ep = String.valueOf(endpoint).toLowerCase()
        logger.lifecycle("Value of 'endpoint': ${ep}")
        switch (ep) {
            case 'qab':
                finalizedBy 'assembleJenkinsQa'
                break
            case 'prod':
                finalizedBy 'assembleRelease'
                break
            default:
                finalizedBy 'assembleJenkinsQa'
        }
    }
    

    【讨论】:

    • 实际上它似乎相反 - 它是 assembleFromJenkinsJob 应该完成其他任务 - 比如来自 java 插件的 check。在 gradle 中,它被称为 lifecycle task
    • 但是switch还是可以用的:)
    猜你喜欢
    • 2015-04-09
    • 2019-06-07
    • 2011-03-10
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多