使用路径别名指向文件夹会导致 Gradle 错误
Posted
技术标签:
【中文标题】使用路径别名指向文件夹会导致 Gradle 错误【英文标题】:Using a path alias to point to a folder results in a Gradle error 【发布时间】: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 中。然后你可以在你的字符串中使用它。
【参考方案1】:
您可以尝试通过“$System.env.WORKSPACE”访问工作区变量吗? 例如:
def apks = file("$System.env.WORKSPACE"+"/app/build/outputs/build-apks.tar.gz")
【讨论】:
以上是关于使用路径别名指向文件夹会导致 Gradle 错误的主要内容,如果未能解决你的问题,请参考以下文章