SBT:如何包含相同依赖的普通jar和test-jar

Tva*_*roh 6 scala maven sbt

在我的SBT描述中,我有:

libraryDependencies ++= Seq(
  "org.neo4j" % "neo4j-kernel" % neo4jVersion,
  "org.neo4j" % "neo4j-kernel" % neo4jVersion % "test" classifier "tests" // test-jar
)
Run Code Online (Sandbox Code Playgroud)

通过这种设置,我没有得到test-jar依赖(第二行).但是如果我删除第一行,那么test-jar依赖就到位了.

如何包含两个依赖项?

Rob*_*ing 2

您是否正在尝试让 test-jar 可用于您的主要(“编译”)代码?或者你的测试代码?

根据http://www.scala-sbt.org/release/docs/Detailed-Topics/Library-Management.html#ivy-configurations,如果您尝试获取可用于主代码的其他内容的测试配置,你需要类似的东西% "compile->test"我的“编译”使用他们的“测试”)。

例如,如果你想要两个都在 main 中,

"org.neo4j" % "neo4j-kernel" % neo4jVersion
"org.neo4j" % "neo4j-kernel" % neo4jVersion classifier "tests" % "compile->test"
Run Code Online (Sandbox Code Playgroud)

或者如果您只想测试后者,请尝试打乱classifier和 的顺序% "test"

"org.neo4j" % "neo4j-kernel" % neo4jVersion
"org.neo4j" % "neo4j-kernel" % neo4jVersion classifier "tests" % "test"
Run Code Online (Sandbox Code Playgroud)

粘贴show compile:dependencyClasspathvs show test:dependencyClasspath(在 sbt 提示符下)