使用sbt 0.13.1,测试将无法使用生成的externalIvyFile进行编译

时间:2014-02-22 20:33:59

标签: scala sbt ivy

对于我们的Scala开发,我们目前使用的是ivy + ant,但我们也尝试将sbt用于我们的开发工作流程。这将用于不使用IDE时的连续增量编译。

sbt使用常春藤,所以理论上这应该有效。但是当使用常春藤外部文件时,测试将无法编译。

要重现这一点,您甚至可以使用任何sbt项目生成的ivy.xml文件。

以下是使用tests

在sbt项目上重现错误的步骤
    来自sbt控制台的
  • 运行deliverLocal(在先前版本的sbt中为deliver-local
  • 将生成的常春藤文件复制到项目主页并将其重命名为“ivy.xml”。根据我的理解,使用此文件应该相当于在build.sbt中声明依赖项。
  • 编辑build.sbt,在一行上添加externalIvyFile(),然后注释所有依赖项声明
  • 在控制台中
  • ,运行reload,然后test

compile运行得很好,但test将在编译时失败。没有任何依赖关系,即使是当前项目的生产代码。

我错过了什么?

1 个答案:

答案 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