18

Google App Engineで動作するようにsbtを設定しようとした人はいますか?ソースの変更後に開発サーバーの自動リロードを使用することを夢見ています。

4

7 に答える 7

21

簡単なデモについては、ここで行ったことを複製またはダウンロードできます。

最小限のsbt-appengine-pluginの例を最初から

GitHubからsbt-appengine-pluginのクローンを作成します

 cd mystuff
 git clone git://github.com/Yasushi/sbt-appengine-plugin.git
 cd sbt-appengine-plugin
 sbt

プラグインをローカルに公開して、独自のプロジェクトで使用できるようにします

publish-local
exit

新しいプロジェクトのディレクトリを作成します

cd ..
mkdir sbt-appengine-plugin-test
cd sbt-appengine-plugin-test
sbt

新しいプロジェクトを構成します

Project does not exist, create new project? (y/N/s) y
Name: sbt-appengine-plugin-test
Organization: com.example
Version [1.0]: 
Scala version [2.7.7]: 2.8.0.Beta1
sbt version [0.7.3]:
exit

使用したいプラグインについてsbtに伝えます

mkdir project/build
mkdir project/plugins
nano project/build/project.scala

project.scala

import sbt._

class AppengineTestProject(info: ProjectInfo) extends AppengineProject(info)

nano project/plugins/plugins.scala

plugins.scala

import sbt._

class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
  val a = "net.stbbs.yasushi" % "sbt-appengine-plugin" % "1.1-SNAPSHOT"
}

非常に単純なサーブレットを追加する

mkdir -p src/main/scala/com/example
nano -w src/main/scala/com/example/HelloWorld.scala

HelloWorld.scala

package com.example;

import javax.servlet.http.{HttpServlet, HttpServletRequest, HttpServletResponse}

class HelloWorld extends HttpServlet {
  override def doGet(request: HttpServletRequest, response: HttpServletResponse$
    response.setContentType("text/plain")
    response.getWriter.println("Hello, world")
  }
}

さらにいくつかの構成ファイルを追加します

mkdir -p src/main/webapp/WEB-INF
nano -w src/main/WEB-INF/web.xml

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
   xmlns="http://java.sun.com/xml/ns/javaee" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xm$
   version="2.5">
  <display-name>sbt-appengine-plugin usage example</display-name>
      <servlet>
    <servlet-name>helloworld</servlet-name>
    <servlet-class>com.example.HelloWorld</servlet-class>
  </servlet>
      <servlet-mapping>
    <servlet-name>helloworld</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>


nano -w src/main/WEB-INF/appengine-web.xml

appengine-web.xml

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<!-- Replace this with your application id from http://appengine.google.com -$
  <application>hello-world</application>
  <version>1</version>
</appengine-web-app>

そして最後にsbtを実行してプロジェクトを開始します

sbt

update
dev-appserver-start

ブラウザでhttp:// localhost:8080 /を指定すると、Hello、worldが表示されます。

dev-appserver-stop

ソースファイルの変更を監視するために、サーバーの起動後に〜prepare-webappを少し試しましたが、正しく機能していません。

于 2010-04-15T22:42:33.110 に答える
4

これがGithubのsbt-appengine-pluginで、今すぐ動作させようとしています。進捗状況を投稿します。

于 2009-08-19T03:05:19.400 に答える
2

プラグインの作成者による例はここにあります:http: //gist.github.com/377611

特にプラグインの構成では、1.1-SNAPSHOT(上記)または2.1-SNAPSHOT(sbt-apppengine-plugin READMEに記載)の設定が機能しませんでした。

例は次のとおりです。

import sbt._

class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
    val appenginePlugin = "net.stbbs.yasushi" % "sbt-appengine-plugin" % "2.0" from "http://github.com/downloads/Yasushi/sbt-appengine-plugin/sbt-appengine-plugin-2.0.jar"
}

そして、これは私のために働いた。

于 2010-07-05T03:41:32.130 に答える
2

開始に使用できるsbt+appengineを使用したテンプレートプロジェクトは次のとおりです。

https://github.com/mtkopone/sbt-scalatra-appengine-template

また、sbt-appengine-pluginをローカルで公開する代わりに、Plugins.scalaで以下を使用できます。

import sbt._
class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
  lazy val appEngine = "net.stbbs.yasushi" % "sbt-appengine-plugin" % "2.1" 
    from "http://cloud.github.com/downloads/Yasushi/sbt-appengine-plugin/sbt-appengine-plugin-2.1.jar"  
}
于 2010-11-13T15:59:47.673 に答える
2

開発環境をセットアップし、SBTとアプリエンジンを使用してアプリケーションを作成する方法を説明するサンプルアプリケーションを作成しました。また、夢の自動リロードを取得するためにJRebelを設定する手順も含まれています。

http://jeremys-scala-example.appspot.com/を参照してください

SBT 0.7用なので、少し古くなっています。

于 2011-12-23T13:41:51.850 に答える
2

https://github.com/sbt/sbt-appengineに、新しいバージョンのSBT(0.10+)で動作する新しいバージョンのsbt-appengineプラグインがあります。https://github.com/sbt/sbt-appengineでそれを使用する簡単なサンプルアプリもあります。

Eclipseで作成されたプロジェクトを変換しました。

  • Scalaファイルをsrc/からsrc/main/scalaに移動します。
  • Javaファイルがある場合は、それらをsrc/からsrc/ main/javaに移動します。
  • war/をsrc/main/webappに移動します。
  • WEB-INF / classesに保存する必要のある他のファイルがある場合は、それらをsrc / main / webapp / WEB-INF /classes/に配置します。
于 2013-06-26T21:30:59.480 に答える
1

Google検索でこの投稿が見つかりました。提供されている例はすべてかなり古いので、オンラインで見つけたものに基づいて2つのサンプルプロジェクトを作成しました

于 2013-11-06T18:26:52.763 に答える