我試圖找出使用SBT時的想法是如何認識黨THRID依賴。當我使用sbt plugin gen-idea時,它似乎下載了所有必要的依賴關係,這些依賴關係如預期的那樣放入我的〜/ .ivy /目錄。 intellij如何使用這些代碼?如何獲得的IntelliJ使用依賴從SBT斯卡拉
編輯: 有一件事我注意到的是,如果我提出一個新的想法項目,而不是僅僅一個模塊那麼這個作品的?任何想法,爲什麼會這樣?我希望能夠在同一個項目中擁有多個sbt模塊。
我試圖找出使用SBT時的想法是如何認識黨THRID依賴。當我使用sbt plugin gen-idea時,它似乎下載了所有必要的依賴關係,這些依賴關係如預期的那樣放入我的〜/ .ivy /目錄。 intellij如何使用這些代碼?如何獲得的IntelliJ使用依賴從SBT斯卡拉
編輯: 有一件事我注意到的是,如果我提出一個新的想法項目,而不是僅僅一個模塊那麼這個作品的?任何想法,爲什麼會這樣?我希望能夠在同一個項目中擁有多個sbt模塊。
的sbt-idea插件可用於多模塊SBT項目。我們一直在使用它,因爲在sbt-0.10.0的某個地方,目前是sbt-0.11.2。好像你必須設置好構建文件的相關性部分,所以這裏是我們如何做,從一個完整的規範Build.scala文件的項目設置的例子:
object Vcaf extends Build {
import Resolvers._
import Dependencies._
import BuildSettings._
lazy val vcafDb = Project(
id = "vcaf-db",
base = file("./vcaf-db"),
dependencies = Seq(),
settings = buildSettings ++ /* proguard */ SbtOneJar.oneJarSettings ++ Seq(libraryDependencies := dbDeps, resolvers := cseResolvers)
)
lazy val vcaf = Project(
"vcaf",
file("."),
dependencies = Seq(vcafDb),
aggregate = Seq(vcafDb),
settings = buildSettings ++ Seq(libraryDependencies := vcafDeps, resolvers := cseResolvers) ++ webSettings
)
}
在這個例子中,vcaf-數據庫項目位於vcaf項目文件夾內的文件夾中。 vcaf-db項目沒有自己的build.sbt或Build.scala文件。您會注意到我們正在爲每個項目指定libraryDependencies,這可能是也可能不是您的缺失鏈接。
正如ChrisJamesC提到的,你需要從內SBT做了「重載」(或退出SBT和回來)拿起更改您的構建定義。重新加載項目後,您應該能夠執行「gen-idea no-classifiers no-sbt-classifiers」並獲取具有構建文件中定義的主項目,模塊和庫訪問權限的intellij項目。
希望它有幫助!
如果你想在一個IDEA項目多SBT模塊,你可以使用SBT multi-project builds(又名子項目)。只需創建一個將模塊引用爲子項目的主項目,然後在主服務器上運行gen-idea。爲了您必須使用Build.scala(不build.sbt),如jxstanford的答案各模塊之間或像這樣指定的依賴關係:
lazy val foo = Project(id = "foo", base = file("foo"))
lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo)
一個子項目的水平正常工作(用正確地反映在產生的依賴IDEA項目),但嵌套的子項目似乎不起作用。此外,子項目必須存在於主項目的子目錄中(即不允許使用file("../foo")
)似乎是一種限制。
也How to manage multiple interdependent modules with SBT and IntelliJ IDEA?見。
您是否嘗試過更新命令? 我曾經有過的另一個錯誤是我設置了sbt配置但沒有重新啓動控制檯。這裏只是一些提示。 – 2012-01-28 22:23:51