我有一个 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/