2016-11-14 6 views
1

build.sbt私はクロスプロジェクト(js + jvm)を持っています。他のプロジェクトのjvmパートに依存しています(eventsとしましょう)。ここに私のbuild.sbtの一部です:Scala.js cross-project wrong dependency

lazy val common = (crossProject in file(“common”)).enablePlugins(ScalaJSPlugin) 
lazy val common_js = common.js 
lazy val common_jvm = common.jvm 
lazy val events = (project in file (“events)).dependsOn(common_jvm) 

しかし、私はsbt events/assemblyを行うときに、このセットアップは失敗します。以下のようにエラーがある:

java.lang.RuntimeException: deduplicate: different file contents found in the following: 
JS_DEPENDENCIES 
/Users/riakovle/.coursier/cache/v1/https/repo1.maven.org/maven2/org/scala-js/scalajs-library_2.11/0.6.13/scalajs-library_2.11-0.6.13.jar:JS_DEPENDENCIES 

私はdependencyGraphをすれば、私は私のeventsプロジェクトがcommon:common_sjs0.6_2.11:0.1-SNAPSHOTに依存し、前述のscalajs-libraryはそこから来て推移ご覧ください。 だから私はそれを指定していないのに、何とか私の一般的なjsの依存関係が何とかしているようです。私は間違って何をしていますか?

+0

イベントに関する詳細情報を提供できますか? js/jvmで使用するために構築したカスタムライブラリですか?私は不明です。 js/jvmサブプロジェクト間でコードを共有しようとしたようですが、コンパイルに問題があります。 – Barry

+0

ああ、ああ。これは 'アセンブリ'とScala.jsがJSの依存関係を内部的に管理する方法との間に互換性がないようです... – gzm0

+0

この質問はGitterで答えられました:https://gitter.im/scala-js/scala-js?at=5829e718df5ae9​​664556da57、問題のある部分を含めるようにコードを更新しました。答えの作者にここに投稿してクレジットを得るようにします。 – Haspemulator

答えて

1

おそらくScalaJSPluginをJVMプロジェクトに直接またはcrossProjectで指定しています。このプラグインは、通常のSBTプロジェクトを作成する場合にのみ必要です。crossProjectはJSサブプロジェクト用に自動的に含まれています。

+0

ありがとうございます、あなたの前提は正しいです。質問のコードを問題のある部分を含めるように更新しました。クロスプロジェクトで 'ScalaJSPlugin'を有効にしました。これにより、記述された動作が導かれました。それを取り除いた後、すべてが良いです。 – Haspemulator