2

Eclipseのセットアップとインタラクティブモードで実行されているGAE開発サーバーで反時計回りに作業した後、私はこれらのことをまだはっきりしていませんでした。

1)REPLでコマンドを実行せずにサーバーとアプリケーションを起動するにはどうすればよいですか?

2)アプリケーションをGoogleサーバーにデプロイする場合、アプリケーションのエントリポイントをどこでどのように定義しますか?つまり、Googleはどのアプリケーション、アプリケーションハンドラー、ルートを使用するかをどのように知るのでしょうか。

3)同じプロジェクトでJavaクラスとclojureファイルを使用して組み合わせて、srcフォルダーで作成および編集するときに両方が自動的にコンパイルされるようにすることはできますか?

4)最後にGAEにアップロードするために実際に必要なファイルとjarはどれですか?私はPHPアプリをGAEにデプロイするために使用しましたが、ここでは、コンパイルされたcljファイルを含めてjarを作成する必要があるかどうかわかりません。また、反時計回りやappengine-magicとは異なる方法でファイルを整理したい場合があるので、リソースとクラスへのパスをどこで指定しますか?

5)最後に、Googleの本番サーバーをEmacs-Slime-Swankの組み合わせに接続することは可能ですか?それは夢の実現だろう、笑。

Jetty、Compojure、Ring、Hiccupでappengine-magicを使用しています。

4

2 に答える 2

1

lein / appengine-magic/Eclipseハイブリッドアプローチを提案します。appengine-magicを使用してGAEプロジェクトを作成し、Eclipseでセットアップします。

  1. Clojureの「RunConfiguration」を作成し、サーバーを起動するために評価する必要のあるソースファイルを確認します。起動時にREPLを取得します。
  2. GAEエントリポイントはサーバークラスであり、(プロジェクトを最初に作成したと仮定してweb.xml)で事前にコンパイルされたソースを参照します。App Engine Magic(を参照)エントリポイントがある引数の呼び出しを探します。次に、それはCompojureハンドラーとルートを参照します。詳細については、 https://github.com/gcv/appengine-magicを参照してください。app_servlet.cljlein appengine-newapp_servlet.cljmake-servlet-service-methoddef-appengine-appcore.clj
  3. 私はこれを行っていないので、コメントすることはできません。
  4. appengine-magicにこれを処理させますlein appengine-magic prepare。次に、deploy the warディレクトリappcfg.sh(GAE Java SDKにあります)をデプロイします。また、GAEEclipseプラグインを使用してこれを実現できる場合もあります。
  5. GAEではソケットを使用できません。Swankはソケットに依存しているため、ライブアプリケーションへのREPLはできません。ただし、開発サーバーを使用して、好きなものをすべてREPLできます。
于 2011-04-02T02:10:47.067 に答える
0

Q 1と2は最終的に解決され、クリアされました。

Q 3 javaクラスまたはclojureクラスのいずれかが相互に上書きし、それらのターゲットディレクトリを個別に変更できなかったため、実行できませんでした。

Q 4最初のデプロイが成功した後、含まれるコアベースjarが何であるかがわかりました。はい、それはあなたがあなたのプロジェクトでたまたま何を使うかによります。PHPのデプロイメントで不要なファイルを転送しすぎたと思います。

Q5そう思いました。しかし、私はswankを開発アプリエンジンサーバーで動作させることができませんでした。一部のappenginesdkファイルへの不正アクセスを報告しています。多分私はそれをプロジェクトライブラリに含める必要があります...

于 2011-04-04T07:10:34.517 に答える