Raf*_*ota 18 google-app-engine scala sbt
有没有人试图设置sbt与Google App Engine合作?我梦想在源更改后使用开发服务器自动重新加载.
Leo*_*äki 21
要快速演示,您可以克隆或下载我在这里所做的事情.
从GitHub克隆sbt-appengine-plugin
cd mystuff
git clone git://github.com/Yasushi/sbt-appengine-plugin.git
cd sbt-appengine-plugin
sbt
Run Code Online (Sandbox Code Playgroud)
在本地发布插件,以便您可以在自己的项目中使用它
publish-local
exit
Run Code Online (Sandbox Code Playgroud)
为新项目创建目录
cd ..
mkdir sbt-appengine-plugin-test
cd sbt-appengine-plugin-test
sbt
Run Code Online (Sandbox Code Playgroud)
配置新项目
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
Run Code Online (Sandbox Code Playgroud)
告诉sbt你想要使用的插件
mkdir project/build
mkdir project/plugins
nano project/build/project.scala
Run Code Online (Sandbox Code Playgroud)
project.scala
import sbt._
class AppengineTestProject(info: ProjectInfo) extends AppengineProject(info)
nano project/plugins/plugins.scala
Run Code Online (Sandbox Code Playgroud)
plugins.scala
import sbt._
class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
val a = "net.stbbs.yasushi" % "sbt-appengine-plugin" % "1.1-SNAPSHOT"
}
Run Code Online (Sandbox Code Playgroud)
添加一个非常简单的servlet
mkdir -p src/main/scala/com/example
nano -w src/main/scala/com/example/HelloWorld.scala
Run Code Online (Sandbox Code Playgroud)
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")
}
}
Run Code Online (Sandbox Code Playgroud)
添加一些配置文件
mkdir -p src/main/webapp/WEB-INF
nano -w src/main/WEB-INF/web.xml
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
最后运行sbt并启动项目
sbt
update
dev-appserver-start
Run Code Online (Sandbox Code Playgroud)
将浏览器指向http:// localhost:8080 /,您应该看到Hello,world
dev-appserver-stop
Run Code Online (Sandbox Code Playgroud)
为了观察源文件的变化,我在启动服务器之后用~coating-webapp进行了一些实验,但我还没有让它正常工作.
| 归档时间: |
|
| 查看次数: |
4522 次 |
| 最近记录: |