【问题标题】:"The Google Cloud SDK could not be found in the customary locations and no path was provided." Jenkins“在习惯位置找不到 Google Cloud SDK,也没有提供路径。”詹金斯
【发布时间】:2018-03-15 18:58:56
【问题描述】:

我对 jenkins 很陌生,但我已经搜索了几天的答案。我在 localhost:8080 上运行 jenkins。我用 Java 编写了一个程序,它使用 gradle 部署到 Google App Engine 云。现在我想使用 Jenkins 在 GIT 中构建我的程序。用 gradle 构建程序很好。当我跑步时

./gradlew appengineDeploy

在执行 Shell 中我得到以下信息:

FAILURE:构建失败并出现异常。

  • 出了什么问题:

任务“:appengineDeploy”执行失败。

在常规位置找不到 Google Cloud SDK,也没有提供路径。

  • 试试:

使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

构建失败

总时间:9.571 秒

构建步骤“执行 shell”将构建标记为失败 完成:失败

当我在没有 Jenkins 的情况下在本地运行代码时,Google Cloud SDK 位于:

/Users/marioyoussef/Desktop/google-cloud-sdk

它运行完美,但我不知道如何在执行 ./gradlew appengineDeploy 时将其加载到 jenkins。

【问题讨论】:

  • jenkins 是否在您的用户 ID 下运行?
  • 我在 localhost:8080 上运行 jenkins 并在设置 jenkins 时注册了一个帐户。我不确定你在用户 ID 下运行是什么意思
  • 好吧,SDK 似乎安装在marioyoussef 的主目录下,这意味着marioyoussef 可能在SDK 安装过程中正确设置了环境(可能通过dot-rc 文件)。但是运行 jenkins 的用户很可能没有这个。检查您的 dot-rc 文件,了解您的用户 ID 如何定位 SDK(SDK 目录本身中有几个 shell 的示例文件)。或者在 jenkins 用户路径的开头插入 SDK 目录的 bin 子目录。

标签: google-app-engine jenkins gradle sdk


【解决方案1】:

将以下内容添加到模块的 build.gradle 可能会有所帮助:

appengine.tools.cloudSdkHome="/Users/marioyoussef/Desktop/google-cloud-sdk"

https://cloud.google.com/appengine/docs/flexible/java/gradle-reference#global_properties:

用于配置 Google Cloud SDK 位置的可选属性。通常,当插件与 gcloud components install app-engine-java 一起安装时,插件会在 Cloud SDK 中找到它。

【讨论】:

    【解决方案2】:

    有两种方法可以解决这个问题。

    1. 为 Google Cloud SDK 添加符号链接/快捷方式 IDE中的云插件会在$HOME/google-cloud-sdk等一些自定义位置搜索SDK。因此,您可以在此目录中添加符号链接并将其指向实际安装位​​置。 在您的情况下,/Users/marioyoussef 中的快捷方式名为 google-cloud-sdk 并将其指向 /Users/marioyoussef/Desktop/google-cloud-sdk

    2. build.gradle 中添加 cloudSdkHome 属性,但如果您与其他人共享它可能会很麻烦,因为它可能位于不同的位置。为此,您可以在 README 中提及它以供其他人更改。 只需在应用程序的 build.gradle 中添加这一行 appengine.tools.cloudSdkHome="/Users/marioyoussef/Desktop/google-cloud-sdk"

    来源:GitHub Issues

    【讨论】:

    • 您的解决方案 #1 是否适用于 Windows、MacOS 或 Linux?
    • 是的。我正在使用 Linux,它确实有效。
    【解决方案3】:

    云端尝试在一组预定义目录中查找 Google Cloud sdk。如果它没有找到它,它会抛出一个错误。 对我有帮助的是:

    向主目录添加快捷方式解决了我的问题。

    【讨论】:

    • 您目前写的答案不是很有帮助。请添加更多详细信息。 1. 列出预定义的目录。 2. 你的快捷方式叫什么名字? 3. 它指向哪里? 4. 您的解决方案是否适用于 Windows、MacOS 或 Linux?
    • 感谢您为此指出@naXa。因为我是新手,这真的很有帮助:)
    猜你喜欢
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2014-07-24
    • 2018-02-05
    • 1970-01-01
    相关资源
    最近更新 更多