对于我们的Scala开发,我们目前使用的是ivy + ant,但我们也尝试将sbt用于我们的开发工作流程。这将用于不使用IDE时的连续增量编译。
sbt使用常春藤,所以理论上这应该有效。但是当使用常春藤外部文件时,测试将无法编译。
要重现这一点,您甚至可以使用任何sbt项目生成的ivy.xml文件。
以下是使用tests
在sbt项目上重现错误的步骤deliverLocal
(在先前版本的sbt中为deliver-local
)externalIvyFile()
,然后注释所有依赖项声明reload
,然后test
compile
运行得很好,但test
将在编译时失败。没有任何依赖关系,即使是当前项目的生产代码。
我错过了什么?
答案 0 :(得分:4)
在我的情况下,它使用以下build.sbt:
externalIvyFile()
classpathConfiguration in Compile := Compile
classpathConfiguration in Test := Test
classpathConfiguration in Runtime := Runtime
你最后只需要额外的三行。以下是更多信息的链接:http://www.scala-sbt.org/release/docs/Detailed-Topics/Library-Management.html#ivy-file-dependency-configuration
寻找 Full Ivy示例。我希望它有所帮助!
编辑:只是为了完成 - 这就是我指出上述链接:https://github.com/sbt/sbt/issues/849。