2013-08-06 19 views
6

Bir SBT projem var, özellikle yapılandırmada belirtilen bir dizi alt projeye sahip bir Play Framework 2.1 projesi var. Bağımlılıklar derleme sırasında iyi çalışıyor gibi görünmektedir, ancak "temiz" yalnızca şu anda seçili olan projeyi bağımlılıkları dahil değil, temizliyor gibi görünmektedir. Seçilen projeyi ve bağımlı alt projelerini temizlemek için herhangi bir yol var mı?Tüm bağımlı SBT alt projelerini "temizle" çalıştır

+2

Tüm bağımlılıkları temizlemek için temiz beklemezdim. Bir toplam isteyebilir misin? (sadece google sbt agregatları) –

cevap

6

ana proje böyle, konuyu toplayan edin:

lazy val root = Project("name", file(".")) 
    .aggregate(module1, module2, macros) 

sonra bu kök proje üzerinde adlandırılan herhangi bir komut tüm alt projeler için çalıştırılacaktır. Eğer sbt oturumunda inspect clean komutu ararsanız, açıklamada Yan not bu temiz

üzerinde ilgilidir tüm alt projeler

aggregate ve dependsOn farklı farklı komut vardır İlgili bölümünde, göreceksiniz amaçlar. topluluğunun topluluğunun amacı, kök projesinde çağrılan komutları çalıştırıyor. Kök projemde test komutunu arayarak bu komut, module1module2 ve macros için de yürütülecektir. Aşağıdaki ayar ile böyle bir davranış kapatmak isterseniz:

aggregate in test := false 

Toplulaştırılmış proje onlarda kodu bağımsızdır. Genellikle kök projesinde kullanılır, örneğin her projede test numaralı telefonu aramak değil, root olarak adlandırmak. Agregasyon komutları durumunda paralel olarak yürütüleceğini unutmayın.

Ve dependsOn projenizin diğer projeden gelen kodlara bağlı olacağı anlamına gelir. Ve bu durumda SBT, dependsOn bazı modüllerin, bu projeyi ilk adımda, kök projesinde derlemesi gereken compile kök projenize sırayla komut sıralamasını yürütecektir.

+0

Bir yan notda, .aggregate kullanırsam hala .dependsOn'a ihtiyacım var mı? DependsOn'u bir araya getirdiğimde, toplama projesinde bazı derleyici hataları aldım ve hepsi paralel olarak derlenmiş gibi görünüyordu. –

+0

@BenDilts Yan notunuza biraz açıklama ekledim – 4lex1v