【问题标题】:Strange build failure when deploying GAE using gradle使用 gradle 部署 GAE 时出现奇怪的构建失败
【发布时间】:2018-12-07 19:10:11
【问题描述】:

以前一切正常,直到今天。据我所知,没有改变任何东西,现在我明白了:

C:\mypath>gradle appengineDeploy

> Configure project :
WARNING: You are a using release candidate 2.0.0-rc1. Behavior of this plugin has changed since 1.3.5. Please see release notes at: https://github.com/GoogleCloudPlatform/app-gradle-plugin.
Missing a feature? Can't get it to work?, please file a bug at: https://github.com/GoogleCloudPlatform/app-gradle-plugin/issues.

> Task :appengineDeploy FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':appengineDeploy'.
> Deployment version must be defined or configured to read from system state
  1. Set appengine.deploy.version = 'my-version'
  2. Set appengine.deploy.version = 'GCLOUD_CONFIG' to have gcloud generate a version for you.
  3. Using APPENGINE_CONFIG is not allowed for flexible environment projects

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.8.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 6s
8 actionable tasks: 6 executed, 2 up-to-date

我刚刚将 gradle 从 4.5.1 更新到 4.8.1,但同样的问题仍然存在。我知道它抱怨 appengine 的版本,但我以前从来没有说过,所以我认为这是由于谷歌方面的一些更新。我错过了什么?

【问题讨论】:

    标签: google-app-engine gradle deployment build


    【解决方案1】:

    您现在使用的是app-gradle-plugin 版本2.0.0-rc1,正如我从两天前发布的控制台输出中看到的那样。它有一些变化,插件的开发人员记录了这些变化。

    正如您在来自 google 的此候选版本的 Change Log 中看到的那样,它在更改中提到:

    默认情况下不再从全局 gcloud 状态中提取项目和版本。项目必须使用 deploy.project 属性在 build.gradle 中配置,用户可以使用项目的特殊关键字来指定他们想从 appengine-web.xml (project = "APPENGINE_CONFIG") 或 gcloud 全局状态 (项目=“GCLOUD_CONFIG”)。版本也是同样的配置方式。

    因此,您只需在 gradle.build 中指定以下内容:

    appengine {
        deploy {
            version = "GCLOUD_CONFIG"
            project = "GCLOUD_CONFIG"
        }
    }
    

    2.0.0-rc3 更新 (感谢@wildcat12 指出) 在最新版本2.0.0-rc3 中,project 配置属性已更改。

    更改了 appengine.deploy.project -> appengine.deploy.projectId

    因此,现在您的 gradle.build 配置将如下所示:

    appengine {
        deploy {
            version = "GCLOUD_CONFIG"
            projectId = "GCLOUD_CONFIG"
        }
    }
    

    【讨论】:

    • 我这样做后似乎工作正常。太感谢了!我试过做一半(版本=“GCLOUD_CONFIG”),但我想我错过了“”和项目之一。邋遢。再次感谢您!
    • @djokerndthief 很高兴它对你有用!请不要忘记将答案标记为正确的;)
    • 我现在做了,但在我获得更好的声誉之前不会显示。谢谢。
    • 对于最新版本,它必须是“projectId”(而不是“project”),否则会出错。 github.com/GoogleCloudPlatform/app-gradle-plugin/blob/master/…
    【解决方案2】:

    如果你正在使用

    classpath 'com.google.cloud.tools:appengine-gradle-plugin:+'
    

    在您的 build.gradle 文件中,您现在使用的是 2.0.0-rc3 候选版本。它适用于最新的稳定版本:1.3.5。

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      相关资源
      最近更新 更多