【问题标题】:Passing envs into gradle build?将环境传递给 gradle build?
【发布时间】:2017-10-10 08:21:42
【问题描述】:

我在容器中使用 gradlew 进行 CI 构建。

在 bash shell 中添加 ENV 值时无法识别它们。

有没有办法将 envs 传递到 gradle 构建参数中,或者以上是否就足够了?

【问题讨论】:

    标签: docker gradle gradlew


    【解决方案1】:

    我不太确定这里的问题,是您无法读取 gradle 中的变量吗?

    这个问题可能会有所帮助:In Gradle, is there a better way to get Environment Variables?

    version = System.getenv("JENKINS_BUILD_NUMBER") ?: "0.1-SNAPSHOT"

    在我的 build.gradle 脚本中运行良好。

    这里有一个例子:

    嗯,那肯定可以正常工作。

    这是我的build.gradle

    apply plugin: 'java'
    apply plugin: 'groovy'
    
    task('hello') {
      println System.getenv("HI")
    }
    

    所以,如果我运行:

    export HI="hello there"

    gradle hello

    我明白了:

    hello there
    :hello UP-TO-DATE
    
    BUILD SUCCESSFUL
    
    Total time: 0.869 secs
    

    这行得通。只需确保在 CI conf 中正确定义 ENV 变量即可。

    【讨论】:

    • 基本上我正在尝试在容器中构建一个项目,并且该项目包含我在本地使用的环境。我正在使用 gradle 包装器来复制我的本地 gradle 环境,但无法复制容器内的环境 - 例如,当我在容器中运行 gradlew 脚本时,无法识别 ADMIN=password。
    猜你喜欢
    • 2018-04-27
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 2021-09-05
    • 2020-03-27
    • 2017-03-30
    • 2018-08-19
    • 1970-01-01
    相关资源
    最近更新 更多