2017-03-26 6 views
0

私のプロジェクトでは、Cats 0.7.8とScala 2.11.8が使用されています。私はbuild.sbtファイルで更新し猫を0.7.8から0.9.0にアップグレードできない

"org.typelevel" % "cats-core_2.11" % "0.7.8" 

から

"org.typelevel" % "cats-core_2.11" % "0.9.0" 

に私の猫の依存関係を変更して、私は問題があるエラー

[error] bad symbolic reference to cats.data.Xor encountered in class file 'Parser.class'. 
[error] Cannot access type Xor in package cats.data. The current classpath may be 
[error] missing a definition for cats.data.Xor, or Parser.class may have been compiled against a version that's 
[error] incompatible with the one found on the current classpath. 
[error] one error found 
[error] (compile:compile) Compilation failed 

を取得sbt clean compileをしようとする場合私はParser.classがコンパイラが話している人ではない。私自身のソースコードベースにParser.classがないことは確かです。私たちのコードは古いXorクラスのCatsを使用していません。 (ただし、Scala 2.12にまだ含まれていないため)。

答えて

1

おそらくあなたが使っている他のライブラリは、猫にも依存しています。あなた自身のライブラリを追加してCatsのバージョンを削除したので、そのライブラリは古いバージョンとのリンクを試みていますが、コンパイラは新しいバージョンを使用します。

https://github.com/jrudolph/sbt-dependency-graphのようなSBTプラグインを使用して、関係グラフ全体を印刷し、どのライブラリがCatsに依存しているかを確認することができます。おそらくそれらの1つの隣には、evictedという単語があります。これは、あなたが提供するものよりも、他のバージョンのCatsとリンクしていることを意味します。

ライブラリ(oriライブラリ)が見つかったら、それらを新しいCatsとリンクする新しいバージョンに更新してみてください。それは私自身他の依存関係を見ることなくあなたに伝えることができるすべてです。

+0

はい。 dependencyTreeは、追い出されたライブラリを示しました。私は彼らのバージョンをアップグレードすることができ、アップグレードは成功しました。 –

関連する問題