2011-03-13 149 views
2

我在同一時間使用Maven和SBT管理我的項目。造成這種情況的原因是:
Maven SBT依賴項構件?

  1. 的IntelliJ的IDEA無法導入SBT 項目(IDEA-SBT插件不 工作非常好)
  2. 我不知道怎樣才能來源和 的javadoc。 SBT。(我想看看關於這個的任何答案)

問題是我不知道如何讓Maven下載SBT依賴。我搜索maven倉庫並找不到關於sbt的任何內容。我想用Maven或SBT來管理我項目中的所有罐子。

回答

5
  • 如果您將pom.xml放到項目的根目錄中,它將被SBT識別。當您在項目定義中沒有指定託管依賴項時,SBT依賴於Maven依賴項。

    正如在SBT doumentation說,

SBT執行這種依賴性在執行更新操作時處理 。默認情況下,sbt在每次編譯之前都不會更新您的 依賴項,但只有在您執行 更新時纔會更新。 SBT支持的 指定這些依賴三個方面:

* Declarations in your project definition 
* Maven POM files 
* Ivy configuration and settings files 
  • Maven的一無所知SBT截至目前(至少我沒有聽說過任何插件到目前爲止),所以,你最好可以在Maven和SBT中管理您的項目,是通過SBT生成POM。有關更多詳細信息,請參閱SBT to Maven Converter
+0

是的,但是當導入到IDEA時,它聲稱找不到SBT.jar,因爲它確實存在於maven中,我問的是如何將sbt依賴添加到pom.xml中。 – Sawyer 2011-03-13 07:48:49

+0

爲什麼你需要你的項目依賴於sbt.jar(構建時間,元級別依賴)?只有在項目定義時才需要(在大多數情況下),這對於SBT是有用的(並且在標準設置中,可見)。 – 2011-03-13 07:57:11

+0

由於您使用scala源定義sbt項目定義,IDE將嘗試解析並編譯該文件。如果您的類路徑中沒有有效的sbt庫,它將報告編譯錯誤,我不想指向硬盤驅動器中的那個jar。 – Sawyer 2011-03-13 08:08:45

5

idea-sbt插件對IDEA 10非常有用 - 它真正打算做的是在IDE中打開一個SBT外殼,並且它足夠好。

如果您有興趣將Maven從構建中移出,那麼您應該查看一個插件是sbt-idea插件(https://github.com/mpeltonen/sbt-idea)。這是一個很棒的插件,可以從SBT項目中生成IDEA文件。它不容易使用。在SBT提示符處,運行以下命令:

*sbtIdeaRepo at http://mpeltonen.github.com/maven/ 
*idea is com.github.mpeltonen sbt-idea-processor 0.3.0 
update 
idea 

注意星號 - 它們應該包括在內。

此時,您可以在IDEA中打開您的項目。它不會抱怨SBT依賴。無論何時,只要將新的依賴關係添加到項目文件中,只需再次運行'idea'命令以告知IDEA。我在idea-sbt提供的SBT窗口中這樣做。

至於獲得源和文檔具有依賴性,你可以做這樣的事情(從SBT docs):

val sc = "org.scalacheck" % "scalacheck" % "1.5" withSources() 

有一個相應的withJavadoc()方法。希望有所幫助。

+3

非常感謝withSources()提示。 – Sawyer 2011-03-14 07:04:52