私はテストアセンブリのjarにテスト依存関係をパッケージ化できません。sbt-assembly jarにテスト依存関係を含めるには?
...
name := "project"
scalaVersion := "2.10.6"
assemblyOption in (Compile, assembly) := (assemblyOption in (Compile, assembly)).value.copy(includeScala = false)
fork in Test := true
parallelExecution in IntegrationTest := false
lazy val root = project.in(file(".")).configs(IntegrationTest.extend(Test)).settings(Defaults.itSettings: _ *)
Project.inConfig(Test)(baseAssemblySettings)
test in (Test, assembly) := {}
assemblyOption in (Test, assembly) := (assemblyOption in (Test, assembly)).value.copy(includeScala = false, includeDependency = true)
assemblyJarName in (Test, assembly) := s"${name.value}-test.jar"
fullClasspath in (Test, assembly) := {
val cp = (fullClasspath in Test).value
cp.filter{ file => (file.data.name contains "classes") || (file.data.name contains "test-classes")} ++ (fullClasspath in Runtime).value
}
libraryDependencies ++= Seq(
...
"com.typesafe.play" %% "play-json" % "2.3.10" % "test" excludeAll ExclusionRule(organization = "joda-time"),
...
)
...
私はsbt test:assembly
を使用して、私の脂肪のjarファイルを組み立てるときに、ある脂肪ジャーproject-test.jar
を生成するが、play-json
依存関係がにパッケージされていない:しかし
$ jar tf /path/to/project-test.jar | grep play
$
ここに私のbuild.sbt
からの抜粋です、私がplay-json
のdep(すなわち"com.typesafe.play" %% "play-json" % "2.3.10" excludeAll ExclusionRule(organization = "joda-time")
)から"test"
の設定を削除すると、それが含まれていることがわかります:
$ jar tf /path/to/project-test.jar | grep play
...
play/libs/Json.class
...
$
私は間違ったことや何かをしていませんか?ここでの私の目標は、私がissuseの原因であることが判明上記の私は投稿元build.sbt
抜粋で重要な部分を残してきた