Czy ktoś próbował skonfigurować sbt do pracy z Google App Engine? Marzę o używaniu automatycznego przeładowywania serwera programistycznego po zmianie źródła.Jak korzystać z sbt z Google App Engine?
Odpowiedz
Aby uzyskać szybką wersję demonstracyjną, możesz sklonować lub pobrać to, co zrobiłem: here.
minimalistyczny sbt-appengine-plugin przykład od podstaw
sklonować SBT-AppEngine-plugin z GitHub
cd mystuff
git clone git://github.com/Yasushi/sbt-appengine-plugin.git
cd sbt-appengine-plugin
sbt
Publish plugin lokalnie, dzięki czemu można go używać w swoich projektach
publish-local
exit
Utwórz katalog dla nowego projektu
cd ..
mkdir sbt-appengine-plugin-test
cd sbt-appengine-plugin-test
sbt
skonfigurować nowy projekt
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
Tell SBT o wtyczce chcesz użyć
mkdir project/build
mkdir project/plugins
nano project/build/project.scala
projektu. 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"
}
Dodaj bardzo prosty aplet
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")
}
}
Dodać trochę więcej plików konfiguracyjnych
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>
I wreszcie uruchomić SBT i rozpocząć projekt
sbt
update
dev-appserver-start
należy wpisać w przeglądarce http://localhost:8080/ i powinieneś zobaczyć Hello, world
dev-appserver-stop
Aby obserwować zmiany w plikach źródłowych trochę eksperymentowałem z ~ pr epare-webapp po uruchomieniu serwera, ale nie udało mi się go poprawnie uruchomić.
Oto sbt-appengine-plugin na Githubie, który próbuję teraz uruchomić. Będę publikować wszelkie postępy.
The Yasushi/SBT-AppEngine-plugin związaną z tym POUFNY er niestety już nie istnieje. – Suma
Znajdziesz przykład przez autora pluginu tutaj: http://gist.github.com/377611
Szczególnie w konfiguracji wtyczek, ustawienie 1.1-SNAPSHOT (wymienione powyżej) lub 2,1-SNAPSHOT (wymienionego w SBT-apppengine -plugin README) nie działa.
Przykład pokazuje:
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"
}
I to pracował dla mnie.
Oto projekt szablon używając SBT + AppEngine, które mogą być wykorzystane, aby zacząć:
https://github.com/mtkopone/sbt-scalatra-appengine-template
Ponadto, zamiast opublikować SBT-AppEngine-plugin lokalnie, można użyć następujących w 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"
}
pisałem przykładową aplikację opisujący jak skonfigurować środowisko programistyczne i tworzenia aplikacji przy użyciu SBT i app Engine. Zawiera również instrukcje dotyczące konfigurowania JRebel, aby uzyskać automatyczne przeładowanie, o jakim marzysz.
Zobacz http://jeremys-scala-example.appspot.com/
Jest dla SBT 0,7 więc jej trochę nieaktualne.
Istnieje teraz nowa wersja wtyczki sbt-appengine, która działa z nowszymi wersjami SBT (0.10+) pod numerem https://github.com/sbt/sbt-appengine. Jest też trywialna przykładowa aplikacja, używająca go pod adresem https://github.com/sbt/sbt-appengine.
Właśnie przekształcony projekt, który został stworzony z Eclipse:
- plików Move scala z src/do src/main/scala.
- Jeśli masz pliki Java, przenieś je z src/do src/main/java.
- Przenieś wojnę/do src/main/webapp.
- Jeśli masz inne pliki, które powinny znaleźć się w WEB-INF/classes, umieść je w src/main/webapp/WEB-INF/classes /.
Znaleziono ten wpis w wyszukiwarce Google.Ponieważ wszystkie przewidziane przykłady są dość stare Stworzyłem dwa przykładowe projekty oparte na tym, co znalazłem w Internecie
Sample GAE app napisane w Scala korzystając Scalatra 2.0.5, Scala 2.10.3 i SBT 0,13 https://github.com/cppexpert/scalatra-google-app-engine-app
Próbka GAE aplikacja napisana w Scala Scala, używając Unfiltered 0.7 2.10.3 i SBT 0,13 https://github.com/cppexpert/sample-scala-google-app-engine-app
- 1. Jak korzystać z Google Drive API z Google App Engine?
- 2. Jak korzystać z inwazyjnych szablonów templatetag w google-app-engine
- 3. Google App Engine APNS
- 4. yaml w Google App Engine z index.html
- 5. Usługi internetowe z Google App Engine
- 6. Google App Engine z obsługą PHP 7
- 7. Google App Engine Geohashing
- 8. Google App Engine
- 9. Google App Engine: get_or_create()?
- 10. , jak rozpocząć korzystanie z google-engine-engine?
- 11. Jak korzystać z usługi Facebook Connect w Google App Engine bez korzystania z Django?
- 12. Jak korzystać z virtualenv z pakietem SDK Google App Engine w systemie Mac OS X 10.6
- 13. web.py w Google App Engine
- 14. App Engine i Google Drive API
- 15. Google App Engine JDO 3
- 16. Google App Engine kopiowanie nadawcy
- 17. Google App Engine vs WebFaction
- 18. Google App Engine dziwne opóźnienie
- 19. Google App Engine Konwerter PDF
- 20. Google Cloud Datastore vs Google App Engine
- 21. OpenID dla Google App Engine
- 22. Retrolambda w Google App Engine
- 23. Google App Engine wiele regionów
- 24. Google App Engine/_ah/zdrowie
- 25. Google App Engine modifyThreadGroup problemem
- 26. Jak importować moduły w Google App Engine?
- 27. Jak wysłać wiadomość chmury Firebase z aplikacji Google App Engine
- 28. Jak radzić sobie z usuwaniem w Google App Engine (Python)
- 29. Google App Engine lub Django?
- 30. Google App Engine: Kontyngent Błąd
W przykładzie serwletu, czy chcesz umieścić znak dolara na linii, która zaczyna "nadpisać def doGet"? Z pewnością ma to być ścisły wspornik? –
musisz przedłużyć projekt za pomocą cechy JRebel, aby uzyskać dostęp do zmian w działaniu. – alexguev
Wtyczka Yasushi/sbt-appengine połączona z tą odpowiedzią niestety nie istnieje. – Suma