私はこれを長い間苦労しているので、どんな助けにも感謝します。
共通ライブラリmyCommonLib
は、私がsbt-assembly
で陰影を付ける必要がある依存関係があります。
ローカルIvyリポジトリに公開すると、通常の「通常の」バージョンと、「-assembly」が追加された影付きのバージョン(すべての依存関係がバンドルされている)の2つのバージョンが取得されます。Sbtアセンブリ、Ivy、クラスパス
問題は、私が「通常の」依存関係を使用しているときに、陰影付きバージョンを参照するNoClassDefFoundError
を取得します。
私はこのようなクラスパスから完全に削除しようとした:
dependencyClasspath in Runtime := {
val allFiles: Seq[Attributed[File]] = (dependencyClasspath in Runtime).value
allFiles.filterNot(_.data.getName.toLowerCase.contains("-assembly"))
}
それはまだ、同じエラーが動作しません。
<artifact name="myCommonLib_2.11" type="jar" ext="jar" conf="compile,runtime,test,provided,optional,sources,docs,pom" e:classifier="assembly"/>
私は何をしないのです:
しかし、ときに私はそれが仕事がないアイビーXMLからそれを(コメントアウト)削除しますか?
おかげで、しかしhttp://www.scala-sbt.org/0.13/docs/Library-Management.html#E [SBTドキュメント](:私はこのように、正確なアーティファクトを指定するときに動作するようにxclude + Transitive + Dependencies)は、「依存関係の特定の推移的依存性**を除外するには、excludeAllまたはexcludeメソッドを使用します」と言います。これは過渡的な依存性ではなく、モジュール自体の一部です。(その中の別のアーティファクト) –