5

私の最後には、次の設定があります

C:>どこでプレイ C:\apps\play-2.2.0\play C:\apps\play-2.2.0\play.bat

C:> where scala C:\apps\scala\bin\scala C:\apps\scala\bin\scala.bat


Scala バージョン > Scala コード ランナー バージョン 2.10.2 -- Copyright 2002-2013、LAMP/EPFL

再生 - バージョン >

Scala 2.10.2 (Java 1.7.0_21 を実行) で構築された play 2.2.0、http: //www.playframework.com

これは遊びアプリではありません!

を使用play newして、現在のディレクトリに新しい Play アプリケーションを作成するか、既存のアプリケーションに移動して を使用して開発コンソールを起動しplayます。

http://www.playframework.comで完全なドキュメントを参照することもできます。


再生プロンプト > リロード、更新で実行すると、次のエラーが表示されます

[error] Modules were resolved with conflicting cross-version suffixes in     {file:/C:/<filepat>}<appname>:
[error]    org.scala-stm:scala-stm _2.10, _2.10.0
[trace] Stack trace suppressed: run last *:update for the full output.
[error] (*:update) Conflicting cross-version suffixes in: org.scala-stm:scala-stm
[error] Total time: 7 s, completed Oct 18, 2013 1:33:41 PM
[modelingApp] $

Build.scalaに以下を追加した後

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

次のエラーを取得します

[trace] Stack trace suppressed: run last *:update for the full output.
[error] (*:update) sbt.ResolveException: unresolved dependency:       dependencyGroupId#dependencyArtifactId_2.10;dependencyVersion: not found
[error] Total time: 8 s, completed Oct 18, 2013 1:22:18 PM
[modelingApp] $
4

4 に答える 4

3

問題は、sbt で scala バージョンの不一致を検出する唯一の手段が、このアーティファクト拡張 "_" を使用することです。

この特定の問題は、Play が依存している scala-stm のバージョンが scala 2.10.0 とのみ互換性があると宣言しているに対し、ビルドでは 2.10.x シリーズから何でも取得できると述べていることです。sbt はこれらが異なるという警告を出しています。

実際には、scala-stm アーティファクトは実際に安全に使用できますが、公開時に誤って構成されているだけです (当時のドキュメント エラーだと思います)。したがって、この場合、エラーを無視しても安全です。ただし、一般に、このエラーは真剣に受け止める必要があります。アーティファクトで宣言された異なる Scala バイナリ バージョン番号が、(コンパイル時ではなく) RUNTIME エラーにつながる可能性が非常に高く、コードに知らぬ間に忍び込みます。

キーを使用して、conflictWarningこのメッセージのログ方法を制御できます。警告を完全に無視したい場合 (ほとんどは正当な問題であるため、お勧めしません)、次の設定を使用できます。

conflictWarning := ConflictWarning.disable

また、これは次の質問の複製であると思います: com.twitter:util-core 内の競合するクロスバージョン サフィックス

于 2013-10-23T13:54:07.413 に答える