将scala sbt部署到谷歌应用引擎

时间:2017-07-27 09:59:00

标签: google-app-engine google-cloud-platform

在将我的scala sbt项目导入intellij时,我收到以下错误

Error while importing SBT project: ... 
[info] Loading project definition from /home/dnilesh/Desktop/app-engine/sbt-appengine-demo-master/project
java.lang.RuntimeException: You need to set APPENGINE_SDK_HOME
at scala.sys.package$.error(package.scala:27)
at sbtappengine.Plugin$AppEngine$.buildAppengineSdkPath(AppenginePlugin.scala:103)
at sbtappengine.Plugin$$anonfun$baseAppengineSettings$33.apply(AppenginePlugin.scala:219)
at sbtappengine.Plugin$$anonfun$baseAppengineSettings$33.apply(AppenginePlugin.scala:219)
at sbt.Init$Value$$anonfun$apply$13.apply(Settings.scala:604)
at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$constant$1.apply(INode.scala:163)
at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$constant$1.apply(INode.scala:163)
at sbt.EvaluateSettings$MixedNode.evaluate0(INode.scala:175)
at sbt.EvaluateSettings$INode.evaluate(INode.scala:135)
at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$submitEvaluate$1.apply$mcV$sp(INode.scala:69)
at sbt.EvaluateSettings.sbt$EvaluateSettings$$run0(INode.scala:78)
at sbt.EvaluateSettings$$anon$3.run(INode.scala:74)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[error] You need to set APPENGINE_SDK_HOME
[error] Use 'last' for the full log.
Invalid response.
 See complete log in file:/home/dnilesh/.IdeaIC2017.2/system/log/sbt.last.log  Consult IDE log for more details (Help | Show Log)

虽然从终端部署相同的应用程序到谷歌应用程序引擎我之后得到相同的错误,在终端我将APPENGINE_SDK_HOME设置为我的谷歌云安装目录/usr/lib/google-cloud-sdk/platform/google_appengine/。然后我得到以下错误。

那么如何设置APPENGINE_SDK_HOME以及哪个路径以便sbt appengineDeploy命令起作用。

root@dnilesh-pc:/home/dnilesh/Desktop/app-engine/sbt-appengine-demo-master# sbt appengineDeploy
[info] Loading project definition from /home/dnilesh/Desktop/app-engine/sbt-appengine-demo-master/project
java.lang.RuntimeException: not found appengine api jar.
    at scala.sys.package$.error(package.scala:27)
    at sbtappengine.Plugin$AppEngine$.buildSdkVersion(AppenginePlugin.scala:114)
    at sbtappengine.Plugin$$anonfun$baseAppengineSettings$32.apply(AppenginePlugin.scala:218)
    at sbtappengine.Plugin$$anonfun$baseAppengineSettings$32.apply(AppenginePlugin.scala:218)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.EvaluateSettings$MixedNode.evaluate0(INode.scala:175)
    at sbt.EvaluateSettings$INode.evaluate(INode.scala:135)
    at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$submitEvaluate$1.apply$mcV$sp(INode.scala:69)
    at sbt.EvaluateSettings.sbt$EvaluateSettings$$run0(INode.scala:78)
    at sbt.EvaluateSettings$$anon$3.run(INode.scala:74)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[error] not found appengine api jar.
[error] Use 'last' for the full log.

1 个答案:

答案 0 :(得分:1)

我做了解决这个问题的步骤:

  1. 下载适用于Java的App Engine SDK: Google App Engine
  2. Direct Download Link

    1. 无论您的GCloud安装路径如何,都要在计算机中解压缩。

    2. 设置APPENGINE_SDK_HOME:

      export APPENGINE_SDK_HOME = /PATH/TO/SDK/appengine-java-sdk-1.9.54

    3. 下载示例Scala sbt应用程序。 Github Sample Scala App

    4. 运行sbt appengineDeploy命令来运行app。在Google云端将项目ID更改为您的项目ID。 Steps before running app

    5. 注意:

      1. 您无法在gae上安装mongodb等第三方数据库。

      2. gae不支持akka框架。

      3. gae不支持多线程。