2014-02-22 56 views
1

對於我們的Scala開發,我們目前使用ivy + ant,但我們也嘗試將sbt用於我們的開發工作流程。這將用於不使用IDE時的連續增量編譯。使用sbt 0.13.1,測試不會使用生成的externalIvyFile進行編譯

sbt使用常春藤,所以理論上這應該工作。但是當使用常青藤外部文件時,測試將不會編譯。

要重現這個,你甚至可以使用從任何sbt項目生成的ivy.xml文件。

這裏是重現上測試一個SBT項目錯誤的步驟,

  • 從SBT控制檯運行deliverLocaldeliver-local在SBT的以前的版本)
  • 產生的ivy文件複製到你的項目並將其重命名爲'ivy.xml'。根據我的理解,使用這個文件應該等同於在build.sbt中聲明依賴關係。
  • 編輯build.sbt,在一行添加externalIvyFile(),然後評論所有依賴聲明控制檯
  • ,運行reload,然後test

compile將運行得很好,但test將在編譯失敗時間。沒有任何依賴關係會被尊重,甚至沒有當前項目的生產代碼。

我錯過了什麼?

回答

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

尋找完整常春藤示例。我希望它有幫助!

編輯:只是要完成 - 這裏是什麼指向我上面的鏈接:https://github.com/sbt/sbt/issues/849

+0

你可以比我更好地閱讀文檔......顯然,它工作的很好,謝謝你指出了這一點! – matthieus

相關問題