2012-09-05 33 views
4

我有一個SBT項目包含多個子項目,即:SBT:運行在所有項目上的動作

> projects 
[info] In file:/home/me/src/foo/ 
[info]  popen 
[info]  foobar-core 
[info] * foobar-client 
[info]  foobar-db 

有沒有辦法運行在每個子項目的作用?我正在尋找類似publish-all的東西,因爲我目前正在通過所有子項目並手動運行publish,一旦存在多個子項目,這會變得非常乏味。

我使用sbt-0.11.2沒有慣性,但願意升級,如果有幫助。

回答

7

您可以定義一個彙總所有其他項目的項目。在這個項目上運行的每個動作都將在所有聚合上運行。下面是來自sbt wiki一個例子:

import sbt._ 
import Keys._ 

object HelloBuild extends Build { 
    lazy val root = Project(id = "hello", 
          base = file(".")) aggregate(foo, bar) 

    lazy val foo = Project(id = "hello-foo", 
          base = file("foo")) 

    lazy val bar = Project(id = "hello-bar", 
          base = file("bar")) 
} 
+0

感謝,這正是我一直在尋找。 – themel

+0

自指南移動後修改了網址 –

+0

如果您有很多項目,這會重複使用。有沒有辦法列出構建中的所有定義的項目? – juanmirocks

相關問題