java - 更新Google App Engine的Gradle版本

标签 java google-app-engine gradle google-cloud-platform

我正在尝试在Google Cloud App Engine上运行Java应用程序,但出现以下错误:org.gradle.api.GradleException: Spring Boot plugin requires Gradle 4.0 or later. The current version is Gradle 2.12
我尝试更新gradle-wrapper.properties以使用gradle 4.5.1,并上传了自己的gradle-wrapper.jar
gradle-wrapper.properties

#Tue Apr 17 09:15:25 SGT 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip

我尝试运行gradle init --type java-library来更新版本,还尝试了gradle appengineBuildgradle appengineDeploy,但是它们都使用--stacktrace标记给出相同的错误消息。

我也尝试重新启动该项目,但是当我运行gradle init --type java-library命令启动一个新项目时,它将安装2.12版本

有谁知道如何解决这个问题?

完整的错误消息:
marketing@online-marketing-buddy:~$ gradle appengineStage --stacktrace
FAILURE: Build failed with an exception.
* Where:
Build file '/home/marketing/build.gradle' line: 34
* What went wrong:
A problem occurred evaluating root project 'onlinemarketingbuddydb'.
> Failed to apply plugin [id 'org.springframework.boot']
   > Spring Boot plugin requires Gradle 4.0 or later. The current version is Gradle 2.12
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'onlinemarketingbuddydb'.
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:155)
        at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:72)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:160)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
        at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
        at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:532)
        at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:93)
        at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42)
        at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
        at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:125)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:122)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:45)
        at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51)
        at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28)
        at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43)
        at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
        at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
        at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
        at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
        at org.gradle.launcher.Main.doAction(Main.java:33)
        at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'org.springframework.boot']
        at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:153)
        at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:112)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyType(DefaultObjectConfigurationAction.java:112)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:35)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:79)
        at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:135)
        at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:46)
        at org.gradle.api.plugins.PluginAware$apply.call(Unknown Source)
        at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.groovy:35)
        at org.gradle.api.Script$apply$0.callCurrent(Unknown Source)
        at build_54mc3xq3ckzqrdj7771r1b8xz.run(/home/marketing/build.gradle:34)
        at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
        ... 47 more
Caused by: org.gradle.api.GradleException: Spring Boot plugin requires Gradle 4.0 or later. The current version is Gradle 2.12
        at org.springframework.boot.gradle.plugin.SpringBootPlugin.verifyGradleVersion(SpringBootPlugin.java:87)
        at org.springframework.boot.gradle.plugin.SpringBootPlugin.apply(SpringBootPlugin.java:77)
        at org.springframework.boot.gradle.plugin.SpringBootPlugin.apply(SpringBootPlugin.java:46)
        at org.gradle.api.internal.plugins.ImperativeOnlyPluginApplicator.applyImperative(ImperativeOnlyPluginApplicator.java:35)
        at org.gradle.api.internal.plugins.RuleBasedPluginApplicator.applyImperative(RuleBasedPluginApplicator.java:43)
        at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:137)
        ... 58 more

编辑

我使用了以下教程:Using GradleGradle

通过这两个教程,我得到相同的最终结果,这就是错误。
我尝试使用以下命令更改gradle版本:
gradle wrapper --gradle-version 4.7 init --type java-application

这里的错误是:Execution failed for task ':init'. > The requested build setup type 'java-application' is not supported.。如果已经设置了项目,则在运行此命令时会给出原始错误。

所以我尝试使用--type basic,但这也给了我原始错误。

尝试gradlew时出现以下错误:
    marketing@online-marketing-buddy:~/OnlineMarketingBuddyDB_AppEngine$ ./gradlew.bat 
-bash: ./gradlew.bat: Permission denied

我不知道下一步该怎么做。

最佳答案

我遇到了同样的问题,并且按照以下步骤进行了修复:

  • 按照Gradle in AE standard environment guide进行操作,直到“使用开发服务器测试应用程序”步骤3(不包括)。
  • 在Google Cloud Shell中,转到/opt/文件夹并执行rm -rf gradle以卸载Gradle 2.12版。在您的应用程序文件夹中删除gradlegradle.w.gradle。您在这里可能会有所不同。
  • here下载所需的兼容版本。
  • 在两个位置解压缩新的Gradle版本:/opt/和您的应用程序文件夹。您将需要sudo文件夹中的/opt/权限才能执行任何操作。例如:sudo unzip gradle-4.5.1-bin.zip
  • 将两个位置的Gradle安装文件夹名称都更改为gradle。例如:sudo mv gradle-4.5.1 gradle
  • 在您的应用程序文件夹中运行gradle appengineRun
  • 关于java - 更新Google App Engine的Gradle版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50127096/

    相关文章:

    python - 如何在 Google App Engine Python 服务器上启用 CORS?

    node.js - 从本地计算机部署时,源文件存储在 Google Cloud Platform 上的哪里

    java - Gradle JaCoCo 插件 - 类和方法名称在报告中不可点击

    java - Gradle:Springboot 重写依赖项(jersey 和 apache httpclient)

    java - 将 lombok 与 gradle 和 spring-boot 一起使用

    java - 如何在不解析日志文件的情况下获取Kafka连接状态?能够对 "Connection to node terminated during authentication."采取行动

    java - libGDX Sprite 渲染失败

    Java RMI : connection refused

    java - 属性文件的spring boot外部配置

    google-app-engine - 如何在不将包发布到 npm 注册表的情况下将依赖于 yarn 工作区的应用程序部署到 Google App Engine?