有沒有人試圖設置sbt與Google App Engine一起使用?我夢想在源代碼更改後使用開發服務器自動重新加載。如何在Google App Engine中使用sbt?
回答
對於一個快速演示,你可以克隆或下載我所做的here。
從頭
克隆的SBT-的AppEngine-插件簡約sbt-appengine-plugin例如從GitHub
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
項目。斯卡拉
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"
}
添加一個非常簡單的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")
}
}
添加一些配置文件
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/,你應該看到你好,世界
dev-appserver-stop
要留意源文件的變化我已經用〜pr做了一些嘗試epare-webapp啓動服務器後,但我沒有得到它正常工作。
以下是Github上的sbt-appengine-plugin,我正試圖立即開始工作。我會發布任何進展。
的靖/ SBT-的AppEngine-插件從該ANSW聯用Scala編寫呃不再存在。 – Suma 2016-06-15 11:00:46
您將通過插件這裏的作者找到一個例子: http://gist.github.com/377611
尤其在插件的配置,1.1-SNAPSHOT(上述)或2.1-快照(在SBT-apppengine提到的設置插件自述文件)沒有工作。
的例子顯示:
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"
}
這爲我工作。
下面是使用SBT + AppEngine上的模板項目,可以用來上手:
https://github.com/mtkopone/sbt-scalatra-appengine-template
此外,而不必在本地發佈的SBT-的AppEngine-插件,你可以使用以下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"
}
我寫了說明如何建立一個開發環境,並使用SBT和應用程序引擎的應用程序的示例應用程序。它還包含有關設置JRebel以獲得您夢寐以求的自動重新加載的說明。
見http://jeremys-scala-example.appspot.com/
這是SBT 0.7所以它的一點點過時。
現在有一個新版本的sbt-appengine插件,它可以在https://github.com/sbt/sbt-appengine的新版本SBT(0.10+)上使用。還有一個簡單的示例應用程序使用它在https://github.com/sbt/sbt-appengine。
我只是轉換這是用Eclipse創建了一個項目:
- 從SRC /爲src /主/移動階階的文件。
- 如果您有java文件,請將它們從src /移動到src/main/java。
- 將war /移至src/main/webapp。
- 如果您有其他文件應該放在WEB-INF/classes中,請將它們放在src/main/webapp/WEB-INF/classes /中。
在Google搜索中找到此帖。由於所有提供的例子是很老我創建了兩個樣本項目基於我在網上找到的使用Scalatra 2.0.5,斯卡拉2.10.3和SBT 0.13 https://github.com/cppexpert/scalatra-google-app-engine-app
樣品GAE用Scala編寫
樣品GAE應用應用程序中使用Unfiltered 0.7,Scala的2.10.3和SBT 0.13 https://github.com/cppexpert/sample-scala-google-app-engine-app
- 1. 部署斯卡拉SBT Google App Engine的
- 2. 如何在Google App Engine中停用Googlebot?
- 3. 如何在Google App Engine中使用Google Libraries API(jQuery)?
- 4. [Google App Engine]如何使用filter()?
- 5. 在Google App Engine中使用NLTK
- 6. 使用JDOQL在Google App Engine中查詢
- 7. 在Google App Engine中使用feedparser
- 8. 使用Java在Google App Engine中分頁
- 9. 在Google App Engine中使用sqlite3?
- 10. 如何在Google App Engine中打印?
- 11. 使用實體 - Google App Engine
- 12. Google App Engine使用maven
- 13. 如何在Google App Engine和Android上使用Google用戶API
- 14. 在Google App Engine中的appengine_config.py
- 15. Google App Engine ndb memcache何時使用memcache
- 16. Google App Engine
- 17. Google App Engine Memcache
- 18. Google App Engine DeobfuscatorBuilder
- 19. Google App Engine Profiler
- 20. Google App Engine ASP.net
- 21. Google App Engine ThreadSafe
- 22. Python - Google App Engine
- 23. App Engine + Google Documents
- 24. SSLHandshakeError - Google App Engine
- 25. 如何在Google App Engine中使用「import oauth2」?
- 26. 如何在PHP中使用作曲家Google App Engine
- 27. 如何在Google App Engine項目中實現OpenID使用者?
- 28. 如何在Google App Engine中使用Joda LocalDate和DateTime?
- 29. 如何在Google App Engine(PHP)中使用API Mailgun-PHP?
- 30. 如何在Google App Engine中使用StringTemplate文件?
在servlet的例子中,你的意思是把美元符號放在開始「覆蓋def doGet」的行上嗎?當然,這意味着一個緊密的支架? – 2010-07-04 13:14:00
您需要使用JRebel特性擴展您的項目才能獲得有關更改的工作。 – alexguev 2011-03-28 23:56:34
不幸的是,這個答案鏈接的Yasushi/sbt-appengine-plugin不再存在。 – Suma 2016-06-15 11:00:43