java - Bitbucket管道: environmental variables in build. gradle文件无法识别

标签 java gradle bitbucket-pipelines

我有一个 bitbucket 管道脚本和一个 version.sh bash 脚本,运行良好。管道将调用版本脚本,并且 version.sh 中存在由 bitbucket 正确引用的环境变量(我在存储库的设置中添加了变量)。

但是,我的 build.gradle 文件中现在也有变量,但是当我尝试 gradle build 时,这些变量一直在管道中给我带来错误。

我不断收到的错误是无法获取 org.gradle.api.Project 类型的根项目“my_project”的未知属性“$context_url”。

变量位于artifactory/publish部分:

artifactory {
    contextUrl = $context_url
    publish {
        repository {
            repoKey = 'repo'
            username = $artifactory_user
            password = $artifactory_password
        }
        defaults {
            publications('mavenJava')
            publishArtifacts = true
            publishPom = true
        }
    }
} 

我在 gradle.build 文件中尝试了不同的语法,例如:

  • $context_url
  • '$context_url'
  • “$context_url”

变量在本地工作,我将变量存储在我的个人 ~/gradle/gradle.properties 文件中。

不知道还可以尝试什么。

最佳答案

我想你把环境变量与 gradle 属性搞混了。如果您指的是环境变量,那么您可以使用以下方式引用它们:

System.getenv('context_url')

通常,环境变量以大写字母命名。

当涉及到 gradle 属性时,如果 context_url 保存在 gradle.properties 文件中,它应该可以正常工作。您可以尝试通过 project 引用它,即 project.context_url$context_url'$context_url' 肯定不行,因为第一个只是一个名为 $context_url 的变量,第二个是String 的实例 - 使用双引号进行字符串计算 "

关于java - Bitbucket管道: environmental variables in build. gradle文件无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53123726/

相关文章:

java - 从 Java 反编译 ANTLR

android - 为什么Android Studio在单个字母更改并运行后构建整个项目

git - 为 bitbucket 上的一个存储库创建多个管道?

java - TestFX和Gradle-NoNodeFoundException

node.js - 是否可以将 aws codepipeline 转换为 bitbucket 管道?

ssh - 如何将 VPN 与 Bitbucket 管道一起使用

java - 使用 JTransforms 库使用 FFT 计算自相关

java - Spring + Hibernate4 + JTA + JBossTS

java - Android 将我的应用程序添加到库中的 "Share"按钮

extjs - Gradle——从任务中执行多个命令