【发布时间】:2020-12-17 19:05:22
【问题描述】:
为了指向我们构建工件在 Jenkins 节点上的位置,我们有以下 gradle 代码:
def apks = file("$WORKSPACE/app/build/outputs/build-apks.tar.gz")
artifacts {
archives apks
}
当我使用如下所示的完整路径时,gradle 构建良好。
def apks = file("/var/jenkins/workspace/ui_manager_nexusDeploy/app/build/outputs/build-apks.tar.gz")
当我们使用 $WORKSPACE 时,我得到了
无法为“org.gradle.api”.Project 类型的项目“:app”获取未知属性“WORKSPACE”。路径
理想情况下,我想使用指针而不是硬编码路径。在这个参考文档中,你可以看到 Gradle 使用 $buildDir 就好了。https://docs.gradle.org/current/userguide/working_with_files.html
【问题讨论】:
-
$WORKSPACE定义在哪里? -
在服务器上。当我运行“echo $WORKSPACE”时,我会打印出路径。我在同一台机器上运行 Gradle 构建。
-
所以
WORKSPACE是一个环境变量。您不能直接访问 Gradle 中的环境变量,只能访问 Gradle 构建脚本中定义的属性或变量。使用def WORKSPACE = System.getenv("WORKSPACE")将环境变量加载到 Gradle 中。然后你可以在你的字符串中使用它。