2013-10-08 17 views
21

私はMandubianのplay-json 2.2-SNAPSHOTに依存するJSON拡張を使用しています。今までScala-STMに基づいたプロジェクトがありました。バージョン間の接尾辞の矛盾(sbt、Scala-STM、Play-JSON)

これらの2つの「競合する」バージョンがどこから来たのかを詳しく調べる機会はありますか?私はplay-jsonがscala-stmに依存しているべきであることに非常に驚いていますか?

さらに、sbtを閉鎖するように説得する方法はありますか?明らかに2.10と2.10.0は同等のバージョンなので、


EDIT:私は0.12.4に戻す場合、プロジェクトが正常に更新し、構築しますので、これは、SBT 0.13バグのようです(そしておそらくプレイ-JSONとは何の関係もありません)。私はまだsbt 0.13の回避策に興味があります。

+0

Mandubianのplay-json SNAPSHOTを使用するのではなく、単にこの依存関係を追加するだけではありません - play_2.10 "%" 2.1.0 "'私の質問ごとに - http://stackoverflow.com/questions/19436069/added-play-json-library-to-sbt –

+0

私はそれがバグであるかどうかは確かではありませんが、アップグレード後にこの問題も見ましたが、実際には2つの異なるバージョンのライブラリが使用されていました。 –

答えて

21

あなたは

"dependencyGroupId" %% "dependencyArtifactId" % "dependencyVersion" exclude("org.scala-stm", "scala-stm_2.10.0") 

sbt cleanを行うことを忘れないでください除外するとScalaの-STMを削除することによってこの問題を回避することができます。

+0

'exclude'メソッドについて知っておいてよろしいですか? –

+2

これは私の' play'アプリケーションでどこに追加しますか?私は 'Build.scala'を想定していますが、inside –

+1

新しく作成されたプロジェクト(Play 2.1.xでは2.2ではBuild.scalaを使用しないため)の 'Build.scala'は依存関係を持つ' Seq'を含む変数 'val appDependencies'を含んでいます。 – kompot

2

更新Play2 2.2 - SBTを0.13.0 - > 0.12.4にダウングレードすると私とは機能しませんでしたが、exclude( "org.scala-stm"、 "scala-stm_2.10.0")をALL私がうまく働いていたアプリケーション固有の依存関係 - とにかく - 私の依存関係のどれもがscala-stmとは関係がありません。

+0

に記載されています。あなたはPlay 2.2で同じ問題があったと言いますか? –

+0

正確に。 Play2 2.1から2.2に切り替えるときに問題が発生しました。その前に、すべてが0.12.4とPlay2 2.1で問題なくなりました。 –

2

すべてのライブラリをSBTプロジェクトに引き込みたい場合は、SBT dependency graphプラグインを使用できます。

これを使用すると、scala-stmが引き込まれている理由を知ることができます。また、他の競合するscala 2.10および2.11の依存関係もチェックできます。

+0

ありがとう、このプラグインは現在グローバルにインストールされており、多く使用しています。良い推薦。 –

+0

それはいいだろう。このプラグインは私にとってはうまくいきませんでした: 'net.virtualvoid.sbt.graph.Plugin.graphSettings ' – jsky

+0

という行の "symbol virtualを解決できません"という行は、/ project/buildではなく/build.sbtになければなりません。 sbt。それはあなたのビルドの場合ですか?または、ここに記載されている代替アプローチを使用してください:https://github.com/jrudolph/sbt-dependency-graph#how-to-use –

関連する問題