【问题标题】:Using a path alias to point to a folder results in a Gradle error使用路径别名指向文件夹会导致 Gradle 错误
【发布时间】: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 中。然后你可以在你的字符串中使用它。

标签: android jenkins gradle


【解决方案1】:

您可以尝试通过“$System.env.WORKSPACE”访问工作区变量吗? 例如:

def apks = file("$System.env.WORKSPACE"+"/app/build/outputs/build-apks.tar.gz")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 2017-01-10
    • 1970-01-01
    相关资源
    最近更新 更多