如何将 sbt 与 Google App Engine 结合使用?

2024-01-13

有人尝试过设置 sbt 来与 Google App Engine 一起使用吗?我梦想在源代码更改后使用开发服务器自动重新加载。


如需快速演示,您可以克隆或下载我所做的内容here http://github.com/leolannenmaki/sbt-appengine-plugin-skeleton.

极简主义sbt-appengine-插件 http://github.com/Yasushi/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

项目.scala

import sbt._

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

nano project/plugins/plugins.scala

插件.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.com/ http://localhost:8080/你应该看到你好,世界

dev-appserver-stop

为了观察源文件的变化,我在启动服务器后用 ~prepare-webapp 做了一些实验,但我还没有让它正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 sbt 与 Google App Engine 结合使用? 的相关文章

随机推荐

  • java.io.FileNotFoundException:(只读文件系统)Mac

    我有一个 SpringBoot 应用程序 我试图在其中测试条形码的生成 但出现此错误java io FileNotFoundException Read only file system Mac 这是完成此任务的代码 pom xml
  • 如何实现 RTL bootstrap 4 导航栏?

    我想让我的引导导航栏 RTL 这是右侧的徽标 链接从右向左流动 我尝试过不同的技巧 但没有一个有效 这是我现在的代码
  • 从字节[]生成X509Certificate?

    是否有可能从 byte 生成 java security cert X509Certificate Sure 证书对象可以通过实例创建证书工厂 http docs oracle com javase 7 docs api java secu
  • Laravel 中删除带有通配符的文件

    有没有一种方法可以让你在 Laravel 5 2 中删除带有通配符的文件 例如 File delete foo bar 我问得太快了 当阅读 PHPDoc 时File delete 我看到你可以给出一个以路径作为参数的数组 所以这对我来说很
  • Chrome 中的实时重新加载 JavaScript

    我知道您可以从 Chrome 开发人员工具的 源 面板中实时编辑 JS 并且我知道有用于实时重新加载 CSS 的系统 但是您可以从源位置 URL 或本地磁盘 或者以某种方式利用工作区 或者甚至可能作为 Chrome 开发者工具插件 特别是这
  • Mercurial 中有没有办法删除本地提交?

    所以我在 Mercurial 中不断犯一个愚蠢的错误 很多时候 我会在不执行 hg pull 和 hg update 的情况下开始工作 当我尝试推送更改时 出现错误 有什么办法可以删除我的本地提交这样我就可以避免创建多个头 分支等 我只想删
  • SQL历史表设计

    我需要设计一个历史表来跟踪编辑时特定记录上更改的多个值 Example 用户将看到一个编辑记录的页面 头衔 先生姓名 乔电话 555 1234出生日期 1900 10 10 如果用户更改任何这些值 我需要跟踪旧值并记录新值 我想到使用这样的
  • 一个控制器中的 AngularJS window.onbeforeunload 正在另一个控制器上触发

    这是我的问题 我有两个视图 View1 和 View2 以及每个视图的控制器 Ctrl1 和 Ctrl2 在 View1 中 我试图在用户意外离开页面而不保存更改之前警告用户 我正在使用 window onbeforeunload 它工作得
  • ThreadAbortException(WebClient 使用 DownloadFile 从服务器获取文件)

    参考我的先前的问题 https stackoverflow com questions 2444888 webclient using download file to grab file from server handling exce
  • 从jsp传递参数到servlet

    如何使用不属于表单任何字段的表单将参数从 jsp 传递到 servlet 而不使用 session 我认为代码可能类似于下面的示例 但对我不起作用 请帮助我 在index jsp中
  • 将玩家分配到桌子上

    考虑N 4k玩家 k桌子和许多氏族 以便每个成员可以属于一个氏族 一个氏族最多可以包含k玩家 我们想要组织 3 轮游戏 这样 对于每张正好容纳 4 名玩家的桌子 坐在那里的 2 名玩家不会属于同一部落 并且在后面的几轮中 坐在那里的 2 名
  • 如何提取当前本地时间偏移值?

    我在尝试格式化和显示一些 IBM 大型机 TOD 时钟数据时遇到了一些困难 我想以 GMT 和本地时间格式化数据 作为默认时间 否则在用户指定的区域中 为此 我需要获取距 GMT 的本地时间偏移值 以有符号整数秒数表示 在zoneinfo
  • 我可以在 Java 中创建自签名证书,该证书将自动受到 Web 浏览器的信任吗?

    我已经使用 keytool 为我的 Java 应用程序生成了自签名证书 但是 当我在浏览器中访问该网站时 它总是会弹出一条警告 说该网站不拥有该证书 有没有办法自签名 修改证书 这样我就不会在浏览器 服务器和浏览器都位于同一主机上 我使用
  • 如何增加pandoc执行时的堆内存?

    我正在努力将 docx 转换为 epub 文档包含大量图像 执行转换时 出现错误 pandoc exe Heap exhausted Current maximum heap size is 1073741824 bytes 1024 MB
  • print(... sep='', '\t' ) 是什么意思?

    我在试图找到这个问题的答案时遇到了一些麻烦 我想知道语法是什么sep and t方法 我找到了一些有关它的信息 但我不太明白使用该语法的目的是什么 我正在寻找它的作用以及何时 为何使用它的解释 一个例子sep 正在使用 print Prop
  • 我想将枚举值打包到 Bundle 中并获取为枚举

    我有这样的枚举 enum Status READY DISCONNECTED RECEIVING more 我想通过 Bundle 将该枚举的值发送到另一个线程 另一个线程想从 Bundle 中提取枚举值 如何巧妙地做到这一点 Bundle
  • GWT Tree 小部件吞下箭头键盘事件,这使得 TreeItems 中包含的文本框不响应箭头键

    在 GWT 1 6 4 中可以轻松重现 Tree tree new Tree tree addItem new TextBox 问题出在 Tree 中的 onBrowserEvent 上 switch eventType case Even
  • 如何在iOS中的静态库中添加xib文件

    我正在尝试在静态库中添加 xib 文件或任何其他视图控制器文件 但我无法这样做 你能帮我么 如果可以的话请添加完整的源代码 第一个视图中的 是 按钮 当单击该按钮时 新的视图控制器会出现一些内容 比如说背景颜色的变化 如何为此创建静态库 这
  • 什么是 Glew、Glut 和 glfw3?哪些在 Opengl 3/4 中已弃用 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在网上阅读有关 OpenGL 3 和 4 与以前版本有何巨大差异的内容 一些教程要求 include
  • 如何将 sbt 与 Google App Engine 结合使用?

    有人尝试过设置 sbt 来与 Google App Engine 一起使用吗 我梦想在源代码更改后使用开发服务器自动重新加载 如需快速演示 您可以克隆或下载我所做的内容here http github com leolannenmaki s