5

環境としてEclipseを使用し、Jettyのような単純なWebサーバーを使用して、LiftまたはPlayフレームワークを使用して、Scalaでかなり単純なWebアプリケーションを開発したいと考えています。しかし、言葉では言い表せないほどの驚きに、すべてを連携させるようにセットアップすることはできません。また、これを行う方法に関する賢明でシンプルで明確なガイドも見つかりませんでした。半日の検索の後、私は、周りの誰もが sbt/maven を組み合わせて使用​​しているようで、単純な空のプロジェクトを取得するためだけに、あるものから別のものに移行し、プロジェクト構成ファイルを手動で作成しても問題ないと感じているという意見に達しました。

空のプロジェクトを作成する簡単な方法はありません。Java の場合、Web サーバーを Eclipse に統合し、単純な Web アプリ プロジェクトを作成して、そこからすぐに実行するのに、数回クリックするだけだったことを覚えています。この場合、Scala のパワーとシンプルさはどこへ行ってしまったのでしょうか? それは、Lift を試してみたい場合だけです。Play も試してみたい場合は、もう一度同じ道を歩む必要がありますか?

アプリの開発をすぐに開始できるように、環境をセットアップする方法を説明する簡単で完全なガイドはどこにありますか?

更新:私は、Peter Gwiazda のアドバイスのおかげで、Play がすぐに使えるすべての機能を備えた、Eclipse との Play プロジェクトの統合に成功しました。現在、このセットアップを開発に使用しています。ただし、関心のある質問は残っています。Lift、Scalatra などの他のフレームワークで同様の機能を実現する他の方法は何ですか?

4

5 に答える 5

8

Playframework 2.0 では非常にシンプルです。チュートリアル http://www.playframework.org/documentation/2.0/ScalaTodoListに従ってください

Play では他に何も必要ありません。Play には既にサーバーが含まれています。

IMHO Play は Lift よりもずっと簡単に操作できます。

于 2012-03-26T10:49:13.923 に答える
6

編集
OK、あなたはそれを求めました;-)

これは、SBT Coffeescript と LESS を使用した Scalatra の最先端のセットアップです ( SBT-Eclipse 依存関係管理については、こちらを参照してください)。

1) テストプロジェクトを覆い隠す

2) プロジェクト ルートで「build.sbt」ファイルを作成します。

import AssemblyKeys._
import Keys._

name := "your project name"

version := "1.0"

scalaVersion := "2.9.1"

fork in run := true 

resolvers ++= Seq(
  "Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/",
  "Typesafe repository" at "http://typesafe.artifactoryonline.com/typesafe/ivy-releases/"
) 

seq(webSettings :_*)

seq(assemblySettings: _*)

seq(coffeeSettings: _*)

seq(lessSettings:_*)

(LessKeys.mini in (Compile, LessKeys.less)) := false

libraryDependencies ++= Seq(
  "org.scalatra"    %% "scalatra"   % "2.1.0-SNAPSHOT",
  "org.scalatra"    %% "scalatra-scalate"   % "2.1.0-SNAPSHOT",
  "org.scalatra"    %% "scalatra-lift-json"     % "2.1.0-SNAPSHOT",
  "org.scalatra"    %% "scalatra-anti-xml"  % "2.1.0-SNAPSHOT",
  "org.scalatra"    %% "scalatra-fileupload"    % "2.1.0-SNAPSHOT",
  "org.eclipse.jetty" % "jetty-webapp" % "8.1.0.RC2" % "test;container;provided",
  "javax.servlet"   % "javax.servlet-api" % "3.0.1" % "provided"
)

unmanagedBase <<= baseDirectory { base => base / "/src/main/webapp/WEB-INF/lib/" }

3) plugins.sbt ファイルを含むルートにフォルダー「project」を作成します。

libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.10"))

resolvers += Resolver.url("sbt-plugin-releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.0.0-M3")

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2")

addSbtPlugin("me.lessis" % "coffeescripted-sbt" % "0.2.2")

addSbtPlugin("me.lessis" % "less-sbt" % "0.1.9")

4) ターミナル/コマンド プロンプトから sbt を起動し、コードのリロードを有効にします。

# sbt
> ~;container:start;container:reload /

Scalatra Bookを開いてハッキングを始めましょう;-)

ORIGINAL
言及する必要がありますが、Scalatra、Spray、または Unfiltered のようなマイクロ フレームワークも興味深いかもしれません。

つまり、Lift and Play が提供するキッチン シンクを探していない場合です。もしあなた台所の流し台を探していて、すぐに使い始めたいのなら、Play 2.0 は確かにとても良さそうです。

于 2012-03-26T14:18:28.703 に答える
4

免責事項:私はVaadinチームのメンバーです。

また、Scalaと完全に連携するVaadinを試すこともできます。HOWTOはこちらです。必要に応じて、MavenまたはSBTを使用することもできます。Vaadinの半公式ScalaラッパーであるScaladinもチェックする必要があります。

Vaadinはコンポーネントベースのライブラリ(依存関係のない1つのJARのみ)であり、HTMLテンプレート、RPC、XML、またはJavaScriptを使用せずに純粋なScalaでAjaxおよびHTML5対応のUIを作成できます。

于 2012-03-26T12:07:37.403 に答える
2

私の Maven プロトタイプを Scalatra に使用してから、Maven プロジェクトを Eclipse にインポートするだけです。SBT の使用を強制されることはありません。

https://github.com/fancellu/scalatra-maven-prototype

于 2013-09-11T22:11:46.417 に答える
1

Lift と Jetty を (組み込みサーバーとして) 使用するプロジェクトがある私の Github リポジトリをご覧ください。まだ十分に文書化されていませんが、どのように機能するかを理解するのに十分小さいです

P4Gサーバーレポ

サーバーは com.p4g.Server オブジェクト (com.p4g.Main Application オブジェクト内で呼び出される) から開始します。

私の Lift ブーストラップ オブジェクトは、boostrap.liftweb パッケージにあります。

ところで、私は ScalaQuery と ScalaZ も使用しています

于 2012-03-27T11:41:29.037 に答える