2013-06-20 263 views
3

我剛剛安裝SBT plugin的IntelliJ和成功導入我的項目。 IntelliJ中的SBT控制檯按預期顯示,但由於我的項目佈局,我無法使用它。整個問題是我的SBT玩!項目不是頂級目錄。相反,我有maven父母pom與幾個子模塊,其中我的SBT應用程序被放置。這是它的樣子:更改目錄中的IntelliJ SBT項目,SBT控制檯

MyProject (parent pom) 
-> submodule1 (JAR) 
-> submodule2 (JAR) 
-> webapp (SBT Play! webapp module) 

運行Play沒有問題!應用程序從Linux CLI,以前更改目錄MyProject\webapp並從那裏執行SBT。但是,我沒有看到在IntelliJ中爲SBT控制檯設置根目錄的選項。我將整個項目導入到工作區中,因此默認的項目根目錄是MyProject,這顯然不像SBT項目那樣受到影響。

有什麼辦法改變「工作目錄」的IntelliJ SBT插件?

回答

2

我有同樣的問題,這裏就是我得到了它去:

  1. 開始加入你的根作爲一個新的模塊。在你的情況下,它會MyProject。我很小心地把它作爲一個空白模塊添加,但是如果你已經有了一些像pom文件(這引發了你爲什麼要使用SBT的問題),那麼你可以讓IntelliJ爲你導入它。
  2. 接下來,Scala的文件添加到您的項目根目錄映射子項目。關於如何設置這些了一個很好的解釋可以在scala wiki

進口sbt._找到 進口Keys._

object HelloBuild extends Build { 
    lazy val root = Project(id = "MyProject", 
          base = file(".")) aggregate(submodule1, submodule2, webapp)  

lazy val submodule1 = Project(id = "submodule1", 
          base = file("submodule1")) 

    lazy val submodule2 = Project(id = "submodule2", 
          base = file("submodule2")) 

    lazy val webapp = Project(id = "webapp", 
          base = file("webapp")) 

} 
  1. 啓動SBT和你現在應該能夠在項目之間切換。如果啓動並運行,請確保使用reload命令應用更改。

您可以列出項目SBT通過projects命令將其識別爲模塊。使用project [projectName]切換項目。因此要切換到子模塊2,只需鍵入project submodule2.