2011-12-18 4 views
7

のビルド依存関係としてリフトJSONを追加します。私は、「プロジェクトの説明」が実際に保存されている場合でもわからない私はスカラ座とSBTに新たなんだ、と私は私のプレイ2.0のプロジェクトでビルド依存関係としてリフトJSONを追加する方法を把握しようとしているプレイ2.0プロジェクト

Add dependency to your project description: 
val lift_json = "net.liftweb" %% "lift-json" % "XXX" 

が、私は次があるBuild.scalaが見つかりました::リフトのJSONドキュメントは言う

import sbt._ 
import Keys._ 
import PlayProject._ 

object ApplicationBuild extends Build { 

    val appName   = "test" 
    val appVersion  = "1.0" 

    val appDependencies = Seq(
     // Add your project dependencies here, 
     "net.liftweb" %% "lift-json" % "2.9.1" 
    ) 

    val main = PlayProject(appName, appVersion, appDependencies).settings(defaultScalaSettings:_*).settings(
     // Add your own project settings here  
    ) 

} 

あなたをnet.liftwebのために追加した行を見ることができます。

[info] Updating {file:/D:/play/test/}test... 
[warn] module not found: net.liftweb#lift-json_2.9.1;2.9.1 
[warn] ==== local: tried 
[warn] D:\play\play-2.0-beta\framework\..\repository/local/net.liftweb/lift-json_2.9.1/2.9.1/ivys/ivy.xml 
[warn] -- artifact net.liftweb#lift-json_2.9.1;2.9.1!lift-json_2.9.1.jar: 
[warn] D:\play\play-2.0-beta\framework\..\repository/local/net.liftweb/lift-json_2.9.1/2.9.1/jars/lift-json_2.9.1.jar 
[warn] ==== Play Repository: tried 
[warn] http://download.playframework.org/ivy-releases/net.liftweb/lift-json_2.9.1/2.9.1/ivys/ivy.xml 
[warn] -- artifact net.liftweb#lift-json_2.9.1;2.9.1!lift-json_2.9.1.jar: 
[warn] http://download.playframework.org/ivy-releases/net.liftweb/lift-json_2.9.1/2.9.1/jars/lift-json_2.9.1.jar 
[warn] ==== Typesafe Repository: tried 
[warn] http://repo.typesafe.com/typesafe/releases/net/liftweb/lift-json_2.9.1/2.9.1/lift-json_2.9.1-2.9.1.pom 
[warn] -- artifact net.liftweb#lift-json_2.9.1;2.9.1!lift-json_2.9.1.jar: 
[warn] http://repo.typesafe.com/typesafe/releases/net/liftweb/lift-json_2.9.1/2.9.1/lift-json_2.9.1-2.9.1.jar 
[warn] ==== public: tried 
[warn] http://repo1.maven.org/maven2/net/liftweb/lift-json_2.9.1/2.9.1/lift-json_2.9.1-2.9.1.pom 
[warn] -- artifact net.liftweb#lift-json_2.9.1;2.9.1!lift-json_2.9.1.jar: 
[warn] http://repo1.maven.org/maven2/net/liftweb/lift-json_2.9.1/2.9.1/lift-json_2.9.1-2.9.1.jar 
[warn] ==== Scala-Tools Maven2 Repository: tried 
[warn] http://scala-tools.org/repo-releases/net/liftweb/lift-json_2.9.1/2.9.1/lift-json_2.9.1-2.9.1.pom 
[warn] -- artifact net.liftweb#lift-json_2.9.1;2.9.1!lift-json_2.9.1.jar: 
[warn] http://scala-tools.org/repo-releases/net/liftweb/lift-json_2.9.1/2.9.1/lift-json_2.9.1-2.9.1.jar 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: net.liftweb#lift-json_2.9.1;2.9.1: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[error] {file:/D:/play/test/}test/*:update: sbt.ResolveException: unresolved dependency: net.liftweb#lift-json_2.9.1;2.9 
.1: not found 
[error] application - 

! @68mcpckf2 - Internal server error, for request [GET /] -> 

play.api.UnexpectedException: Unexpected exception [ResolveException: unresolved dependency: net.liftweb#lift-json_2.9.1 
;2.9.1: not found] 
     at sbt.PlayProject$$anon$1$$anonfun$reload$1$$anonfun$apply$36.apply(SbtPlugin.scala:518) ~[play_2.9.1.jar:na] 
     at sbt.PlayProject$$anon$1$$anonfun$reload$1$$anonfun$apply$36.apply(SbtPlugin.scala:511) ~[play_2.9.1.jar:na] 
     at scala.Option.map(Option.scala:133) [scala-library.jar:na] 
     at sbt.PlayProject$$anon$1$$anonfun$reload$1.apply(SbtPlugin.scala:511) ~[play_2.9.1.jar:na] 
     at sbt.PlayProject$$anon$1$$anonfun$reload$1.apply(SbtPlugin.scala:510) ~[play_2.9.1.jar:na] 
     at scala.Either$LeftProjection.map(Either.scala:183) ~[scala-library.jar:na] 
Caused by: sbt.ResolveException: unresolved dependency: net.liftweb#lift-json_2.9.1;2.9.1: not found 
     at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:216) ~[ivy_2.9.1-0.11.0.jar:na] 
     at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:130) ~[ivy_2.9.1-0.11.0.jar:na] 
     at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:129) ~[ivy_2.9.1-0.11.0.jar:na] 
     at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:110) ~[ivy_2.9.1-0.11.0.jar:na] 
     at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:110) ~[ivy_2.9.1-0.11.0.jar:na] 
     at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:98) ~[ivy_2.9.1-0.11.0.jar:na] 

私はリフトのソースコードのコピーを持っているが、私はそれをどこに置くか知らない:私は次のビルドエラーが発生しますので、残念ながら、それは、間違った場所、または間違った内容であるように思われます。そして、私は間違った場所にその依存関係を置くことをかなり確信しています。誰かが正しい方向に私を指差してくれますか?

+0

興味深いあなたがプレイ2.0内のリフトJSONを希望していること。あなたの推論は何ですか?ちょっと興味があるんだけど。 – andyczerwonka

+0

さて、私はscala-json(Twitterで作成されたもの)に落ち着いてしまいましたが、Playと一緒に出荷されるJSONライブラリが他のオプションと比較するのが難しいためです。 –

+0

私は同意する、リフト1つははるかに良いようです。私はTwitterを試していない。 Twitterの図書館は、あなたが持ち上げているものは何でないのですか?私はリフトケースクラスの取り扱いが好きです。 – andyczerwonka

答えて

20

あなたは本当に唯一の問題は、あなたがリフトjsonのための間違ったバージョン番号を持っていることであるclose--ています。あなたはScalaの+ SBTの世界に入るときに最初に混乱することができます

一つは、パッケージがスカラ座の特定のバージョン用に構築されていることです。現在のバージョンのlift-jsonは2.4-M5です。それでも、 "lift-json_2.9.1"のようなパッケージ名を見たことがあります。ここでの2.9.1は、パッケージが構築されたScalaのバージョンを参照しています。引用した%%構文を使用すると、使用しているScalaのバージョンがパッケージ名に自動的に追加されます。したがって、指定する必要のあるバージョン番号はlift-jsonの番号だけです。

したがって、あなたは

"net.liftweb" % "lift-json_2.9.1" % "2.4-M5" 

のためだけの速記(2 %%対百分の一の点に注意してください)です

"net.liftweb" %% "lift-json" % "2.4-M5" 

を必要としています。

SBT getting started guideは非常に役に立ちます。どのように動作するかを最初に少し脅かすことができます(これは、AntやMavenなどとはかなり異なるアプローチです)。しかし、あなたがそれを使用するならば、頭を下げる価値はあります。

SBTは、ソースパッケージを含む、あなたがneed--すべてをダウンロードしますので、あなたのIDEまたはデバッガがそれに移動することができてあなたは、全くリフトのソースコードを必要としません。

1

Davidからの回答は正しいですが、私はまだ正しいバージョンを見つけることが難しいと感じました。 lift-jsonため

http://repo1.maven.org/maven2/net/liftweb/

見て、あなたがのために、右のディレクトリを取得するために使用しているScalaのバージョン:

を(2.4-M5は平均時間で時代遅れだ)あなたが最近はで構築してしまっているはずです私はだった:

http://repo1.maven.org/maven2/net/liftweb/lift-json_2.11/

関連する問題