2

在逆时针处理我的 Eclipse 设置和以交互模式运行的 GAE 开发服务器后,我发现这些事情对我来说仍然不清楚:

1) 如何在不使用 REPL 命令的情况下启动服务器和应用程序?

2)当我将应用程序部署到谷歌服务器时,我如何以及在哪里定义应用程序的入口点?我的意思是,Google 如何知道要使用哪些应用程序、应用程序处理程序和路由?

3) 我可以在同一个项目中结合使用 java 类和 clojure 文件,以便在我的 src 文件夹上创建和编辑它们时自动编译它们吗?

4)最后上传到GAE实际上需要哪些文件和jar?我曾经将 PHP 应用程序部署到 GAE,但在这里我不知道是否应该制作 jar,包括编译的 clj 文件。我也可能想以不同于逆时针或 appengine-magic 的方式组织文件,那么我在哪里指定资源和类的路径?

5) 最后是否可以将 Google 生产服务器与 Emacs - Slime - Swank 组合连接起来?那将是梦想的实现,大声笑。

我将 appengine-magic 与 Jetty、Compojure、Ring 和 Hiccup 一起使用。

4

2 回答 2

1

我将建议一种 lein/appengine-magic/Eclipse 混合方法。使用 appengine-magic 创建您的 GAE 项目,然后在 Eclipse 中进行设置。

  1. 创建一个 Clojure “运行配置”并检查您需要评估的源文件以启动服务器。当它启动时,你会得到一个 REPL。
  2. 您的 GAE 入口点是您的web.xml服务器类,它指的是预先编译好的源代码app_servlet.clj(假设您lein appengine-new最初用于创建项目)。查找app_servlet.cljmake-servlet-service-method-- 参数的调用是您的 App Engine Magic(参见 参考资料def-appengine-appcore.clj入口点。反过来,它指的是您的 Compojure 处理程序和路由。有关详细信息,请参阅https://github.com/gcv/appengine-magic
  3. 我没有这样做,所以无法评论。
  4. 让 appengine-magic 处理这个:lein appengine-magic prepare,然后部署部署 war 目录appcfg.sh(您可以在 GAE Java SDK 中找到该目录)。您也可以使用 GAE Eclipse 插件来实现这一点。
  5. 您不能在 GAE 中使用套接字。Swank 依赖于套接字,因此无法对您的实时应用程序进行 REPL。但是,您可以使用开发服务器 REPL 所有您喜欢的内容。
于 2011-04-02T02:10:47.067 回答
0

Q 1 & 2 最终得到解决和清除。

Q 3 我无法做到这一点,因为 java 或 clojure 类相互覆盖,我无法分别更改它们的目标目录。

Q 4 在第一次成功部署后,现在我知道要包含的核心基础 jar 是什么。是的,这取决于您在项目中使用的内容。我想我在 PHP 部署中传输了太多不必要的文件。

Q 5 这就是我的想法。但是我在开发应用程序引擎服务器上工作时并没有变得时髦。它报告对某些 appengine sdk 文件的非法访问。也许我需要将它包含在项目库中......

于 2011-04-04T07:10:34.517 回答