Qualcuno ha provato a configurare sbt per funzionare con Google App Engine? Sogno di utilizzare il server di sviluppo che si ricarica automaticamente dopo le modifiche all'origine.Come utilizzare sbt con Google App Engine?
risposta
Per una demo rapida è possibile clonare o scaricare quello che ho fatto here.
uno stile minimalista sbt-appengine-plugin esempio da zero
Clone la SBT-AppEngine-plugin da GitHub
cd mystuff
git clone git://github.com/Yasushi/sbt-appengine-plugin.git
cd sbt-appengine-plugin
sbt
Pubblicare il plugin localmente in modo che si può utilizzare nei vostri progetti
publish-local
exit
Creare una directory per un nuovo progetto
cd ..
mkdir sbt-appengine-plugin-test
cd sbt-appengine-plugin-test
sbt
Configurare il nuovo progetto
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 sul plugin che si desidera utilizzare
mkdir project/build
mkdir project/plugins
nano project/build/project.scala
progetto. 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"
}
Aggiungi un semplice servlet
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")
}
}
aggiungere alcuni file di configurazione più
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>
E SBT finalmente correre e avviare il progetto
sbt
update
dev-appserver-start
Point tuo browser per http://localhost:8080/ e si dovrebbe vedere Ciao, mondo
dev-appserver-stop
da tenere d'occhio cambiamenti nei file sorgente Ho sperimentato un po 'con ~ pr epare-webapp dopo aver avviato il server, ma non ho funzionato correttamente.
Ecco uno sbt-appengine-plugin su Github che sto cercando di ottenere al lavoro in questo momento. Posterò qualsiasi progresso
Il Yasushi/SBT-AppEngine-plugin legata da questo risp non esiste più purtroppo – Suma
Troverete un esempio dall'autore del plugin qui: http://gist.github.com/377611
Soprattutto nella configurazione plug-in, l'impostazione di 1.1-SNAPSHOT (di cui sopra) o 2.1-SNAPSHOT (menzionato nel SBT-apppengine -plugin README) non ha funzionato.
L'esempio mostra:
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"
}
E questo ha funzionato per me.
Ecco un modello di progetto utilizzando SBT + AppEngine che può essere utilizzato per iniziare:
https://github.com/mtkopone/sbt-scalatra-appengine-template
Inoltre, invece di dover pubblicare lo sbt-AppEngine-plugin a livello locale, è possibile utilizzare il seguente in 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"
}
ho scritto un esempio di applicazione che descrive come impostare un ambiente di sviluppo e creare un'applicazione utilizzando SBT e App engine. Include anche istruzioni su come configurare JRebel per ottenere il ricaricamento automatico che sogni.
Vedi http://jeremys-scala-example.appspot.com/
E 'per SBT 0.7 quindi è un po' fuori moda.
V'è ora una nuova versione del plugin SBT-AppEngine che funziona con le versioni più recenti di SBT (0.10+) a https://github.com/sbt/sbt-appengine. C'è anche una banale app di esempio che la usa allo https://github.com/sbt/sbt-appengine.
Ho appena convertito un progetto che è stato creato con Eclipse:
- file Sposta Scala da src/src/main/Scala.
- Se si dispone di file java, spostarli da src/a src/main/java.
- Sposta war/to src/main/webapp.
- Se si hanno altri file che dovrebbero finire in WEB-INF/classi, inserirli in src/main/webapp/WEB-INF/classes /.
Trovato questo post nella ricerca Google.Dal momento che tutti gli esempi forniti sono abbastanza vecchio ho creato due progetti di esempio in base a quello che ho trovato in rete
Esempio GAE app scritto in Scala utilizzando Scalatra 2.0.5, Scala 2.10.3 e SBT 0,13 https://github.com/cppexpert/scalatra-google-app-engine-app
Esempio GAE App scritto in Scala utilizzando Unfiltered 0.7, Scala 2.10.3 e SBT 0,13 https://github.com/cppexpert/sample-scala-google-app-engine-app
- 1. Come utilizzare l'API di Google Drive da Google App Engine?
- 2. Posso utilizzare Goroutine in Google App Engine?
- 3. Google-app-engine NDB
- 4. come iniziare con google app-engine?
- 5. Google App Engine APNS
- 6. Google App Engine Geohasing
- 7. GeoModel con Google App Engine - query
- 8. Google App Engine
- 9. Google App Engine: get_or_create()?
- 10. Come utilizzare il metodo HTTP DELETE su Google App Engine?
- 11. Come forzare Google App Engine [python] a utilizzare SSL (https)?
- 12. Retrolambda su Google App Engine
- 13. Google App Engine supporta ftp?
- 14. Pacchetto "repackaged" Google App Engine
- 15. Impaginazione in Google App Engine con Java
- 16. ImportError su Google App Engine con lxml
- 17. Google App Engine su dominio Google Apps
- 18. OpenID per Google App Engine
- 19. web.py su Google App Engine
- 20. Google App Engine e dos.xml
- 21. Google App Engine JDO 3
- 22. Registrazione dell'applicazione Google App Engine
- 23. Google Cloud Datastore vs Google App Engine
- 24. Django su Google App Engine
- 25. Impossibile distribuire Android App Engine progetto su Google App Engine
- 26. Google App Engine: comunicazione inter-app sicura
- 27. Google App Engine Python | APP.YAML
- 28. Come posso utilizzare Facebook Connect con Google App Engine senza utilizzare Django?
- 29. Google App Engine - incremento automatico
- 30. Google app engine dev_appserver.py problems
Nell'esempio servlet, intendevi mettere il simbolo del dollaro sulla riga che inizia "override def doGet"? Sicuramente, è pensato per essere una parentesi chiusa? –
è necessario estendere il progetto con il tratto di JRebel per controllare che i cambiamenti funzionino. – alexguev
Il plug-in Yasushi/sbt-appengine collegato da questa risposta non esiste più purtroppo. – Suma