【问题标题】:How to have a Gradle task set shell set environment variables?如何让 Gradle 任务集 shell 设置环境变量?
【发布时间】:2017-02-13 23:25:07
【问题描述】:

我有一个 Gradle 任务,它调用一个设置一些环境变量的 shell 脚本。这些变量被另一个 shell 脚本使用,该脚本也被 Gradle 作为另一个任务调用。但是,第二个任务无法查看这些变量。出了什么问题,我该如何真正实现我所要求的行为?

我在 Unix/Linux 中工作。这两个 Gradle 任务基本上都是 Exec 类型的任务。

假设,我准备将第一个 shell 脚本(设置环境变量)所做的工作外包给 Gradle。如何让第二个 shell 脚本获取这些变量?

【问题讨论】:

    标签: gradle environment-variables


    【解决方案1】:

    您是否正在导出要共享的环境变量?尝试使用 export 关键字,如下例所示:

    $ cat a.sh
    #! /bin/sh
    export VAR=val
    /path/to/b.sh
    
    $ cat b.sh
    #! /bin/sh
    echo $VAR
    

    当您执行 a.sh 时,输出“val”会打印在屏幕上。

    希望这会有所帮助! :)

    【讨论】:

    • 正确。像setenv VAR var 这样的东西。我的var's 实际上是目录路径。比如setenv ROOT_PATH ./my_root_path
    • 我不太明白你的回答。我有一个 Gradle 任务,它运行一个设置环境变量的 shell 脚本。我想在另一个由另一个 Gradle 任务运行的 shell 脚本中使用这些变量
    • 在我的示例中,我在 a.sh shell 脚本中定义和导出环境变量 VAR,并在 b.sh shell 脚本中使用该 A 变量。如果您在我的示例中不使用 export 关键字,则它不起作用。检查一下。
    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 2012-02-06
    • 2015-05-01
    • 1970-01-01
    • 2013-11-16
    • 2014-10-27
    • 1970-01-01
    • 2021-05-28
    相关资源
    最近更新 更多