2016-01-22 35 views
1

我有需要依賴於另一個SBT(播放)的SBT(播放)應用程序了多模塊應用程序導入。我進口,使用ProjectRef,我的本地應用程序的build.sbt如下SBT不能切換到項目從GitHub使用ProjectRef

lazy val aaaroot = ProjectRef(uri("https://github.com/abcd/abcd.git"), "aaaroot") 
lazy val core = ProjectRef(uri("https://github.comabcd/abcd.git"), "core") 
lazy val zeusEvolutions = ProjectRef(uri("https://github.com/abcd/abcd.git"), "zeusEvolutions") 

lazy val aaaaaaaroot = (project in file(".")).enablePlugins(PlayJava).dependsOn(aaaroot, core, zeusEvolutions).aggregate(aaaroot, core, zeusEvolutions) 
顯示項目

SBT控制檯正確進口同類

[play-multiple] $ projects 
[info] In file:/Users/RP/LeanTaaS/play-multiple/ 
[info] * aaaaaaaroot 
[info] In https://github.com/abcd/abcd.git 
[info]  aaaroot 
[info]  core 
[info]  zeusEvolutions 

不過,我切換到它從GitHub引進一個項目,跟它Not a valid project

[play-multiple] $ project aaaroot 
[error] Not a valid project ID: aaaroot (similar: aaaaaaaroot) 
[error] project aaaroot 
[error]    ^
[play-multiple] $ project core 
[error] Not a valid project ID: core 
[error] project core 
[error]   ^

這是我的問題之一,實際的問題是,當我是指我的應用程序路由到引進項目的途徑,它是不是能夠找到他們。我認爲這個問題可能是實際問題的根源。

有人可以幫我嗎?

回答

0

我瞭解到,你不能切換到使用project <project_id>,除非它是一個Project的項目。 http://www.scala-sbt.org/0.13/docs/Command-Line-Reference.html#General+commands

通過將我的子應用程序聲明爲虛擬根項目中的子項目,我能夠解決我的實際問題(在另一個應用程序中引用Play應用程序)。不知道是什麼的確切原因,但很多的嘗試和源代碼調試完畢後,這種做法正在

現在我的體型看起來像,

lazy val aaaroot = ProjectRef(uri("https://github.com/abcd/abcd.git"), "aaaroot") 
lazy val core = ProjectRef(uri("https://github.comabcd/abcd.git"), "core") 
lazy val zeusEvolutions = ProjectRef(uri("https://github.com/abcd/abcd.git"), "zeusEvolutions") 

lazy val aaaaaaaroot = (project in file(".")).enablePlugins(PlayJava).dependsOn(aaaapp, aaaroot, core, zeusEvolutions).aggregate(aaaapp, aaaroot, core, zeusEvolutions) 

lazy val aaaapp = (project in file("modules/play-multiple)......