【问题标题】:Gradle export environment returned from script从脚本返回的 Gradle 导出环境
【发布时间】:2020-07-02 18:24:01
【问题描述】:

我正在尝试编写执行以下操作的 gradle 任务:

  1. 执行脚本获取一些数据(假设里面有curl)
  2. 使用此数据设置环境变量。

我想设置这个环境变量,以便其他 gradle 任务可以使用它进行进一步处理。

我的代码如下所示:

task myTask(type: Exec) {
    executable "sh"
    args "-c", "export", "myVar=\$(sh ./script.sh)"
    doLast {
       println System.getenv("myVar") 
    }
}

但是,在执行时,我在控制台中看到我的所有 env 变量都被打印(export KEY=VALUE)并且 System.getenv("myVar") 打印为 null。

我做错了什么?也许有更好的方法来实现我的目标?

【问题讨论】:

    标签: gradle environment-variables exec gradle-task


    【解决方案1】:

    根据这些问题的答案(更多),动态更新/设置环境变量很容易完成或可能完成:

    我认为更好的解决方案是将所需数据写入临时文件,然后将其作为 Gradle 任务的一部分读取:

    task myTask(type: Exec) {
        executable "sh"
        args "sh ./script.sh"
        doLast {
           new File("my-file.data")
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-11
      • 1970-01-01
      • 2020-07-20
      • 2016-03-01
      • 2018-04-13
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      相关资源
      最近更新 更多