我正在开发一个项目,我需要在我们的nexus存储库中添加一个作为依赖项的项目。我需要使用这个项目中的测试和主要类。
在我的build.sbt中,以下内容无法解析依赖关系,并显示测试配置不公开的消息
libraryDependencies += "XProj" % "XProj_2.11" % "1.0-SNAPSHOT" % "test->test;test->compile" classifier "tests"
这很好用
libraryDependencies += "XProj" % "XProj_2.11" % "1.0-SNAPSHOT" % "test" classifier "tests"
但是我还需要使用主源文件夹中没有以这种方式解析的类。我尝试"test;test->compile"
虽然解决了依赖关系,但未获取主类。从XProj的一个测试类中调用一个方法,失败了java.lang.NoClassDefFoundError
是否还有其他方法可以同时添加主类并解决依赖关系?
答案 0 :(得分:0)
试试这个:
libraryDependencies ++= {
val xproj = "XProj" %% "XProj" % "1.0-SNAPSHOT"
Seq(
xproj % "test" classifier "tests"
xproj % "test->compile" classifier "tests"
)
}
干杯
答案 1 :(得分:0)
在不了解您的依赖关系配置的情况下,我想您可能想要改变:
libraryDependencies += "XProj" % "XProj_2.11" % "1.0-SNAPSHOT" % "test" classifier "tests"
类似于:
libraryDependencies += "XProj" % "XProj_2.11" % "1.0-SNAPSHOT" % "default,test" classifier "tests"
其中default,test
是您需要提取的配置的逗号分隔列表。
Ivy中的->
指标通常用于指示模块的传递配置,即如果我写test->compile
这意味着我的模块的test
配置应该引入{ {1}}依赖项的配置。