Gradle sadece bir modül inşa eder


152

Çok modüllü bir gradle yapıyorum. Kök kullanarak bir modül için hedef yürütmek istiyorum. Örn:

gradle build -Pmodule=ABC
gradle jar -Pmodule=ABC
gradle test -Pmodule=ABC
gradle compileJava -Pmodule=ABC
gradle customTask -Pmodule=ABC
etc.

Böylece her hedef modülü belirten kökten çalıştırılabilir. Bunu yapmanın kolay bir yolu var mı?

Teşekkürler !


if (project.hasProperty('module') && module.equals('ABC')) { // execute module ABC } .... Bunu başarmak istediğiniz şey bu mu?
pepuch

@pepuch, lütfen açıklığa kavuşturabilir misiniz? İçinde bir aar olan uygulamamın güncellemelerini göndermek istiyorum, ancak kütüphaneyi yeniden oluşturmadan uygulamadaki değişiklikleri sadece yapmak istiyorum.
The_Martian

Yanıtlar:


302

Belirli bir alt projenin görevini yürütmek için görev yolunu belirtin . Örneğin:

gradle :ABC:build

Lider :, kök projenin kısaltmasıdır. ABCalt proje ve buildbu projedeki bir görevdir.


4
Birçoğundan sadece bir alt projeyi birleştirmek için komut satırı yerine config üzerinden nasıl kontrol edebilirsiniz? Google'ın Sürüm Boru Hatları için, kök projede bir "sınıf temiz montajı" başlatır. Benim için, AppEngine AND Android derlemelerini oluşturmaya çalışıyor. Release Pipeline, geçici bir makine için anlaşılabilir SDK yüklü olmadığı için Android derlemesinde başarısız olacaktır. Ayrıca, Release Pipelines de herhangi bir yapılandırma seçeneği sunuyor gibi görünmüyor.
brunobowden

Benim durumumda, kök proje hala denetleniyor ve şu anda uğraşmak istemediğim hata mesajlarını tetikliyor. Çok sinir bozucu.
Wolfgang Fahl

gradle :ABC:clean :ABC:build
StanislavKo

Gradle build -p moduleA daha iyidir, modülün bağımlılıklarını idare eder.
John

84

Hızlı bir yol buldum

gradle build -p moduleA

moduleA, modülün dizinidir.

Yukarıdaki komut a moduleAve tüm alt modüllerini oluşturur ve moduleAyolu olmalıdır


4
Komutun üstünde bir moudleA ve tüm alt modülü oluşturun ve modülA yol olmalı gradle build -p path\pathSt\moduleA
Viraj

1
Kendi gradle dosyası olan alt projeler için bir sarıcı var. Seçilen cevabın aksine, bu benim için çalışıyor. Ayrıca yorumdaki açıklama için teşekkürler, cevaba ekleyebilir misiniz?
Vlasec

24

Benimle çalışan tek varyant Mac OS'de:

./gradlew  ABC:build

ABC modülün adı

(Linux üzerinde de çalışıyor olabilir)


5

resim açıklamasını buraya girin

IDE'niz Android Studio ise, basit bir yol vardır.Sadece derlemek istediğiniz modül klasörünü seçin, ardından Oluştur'a tıklayın ve Modül'ü 'modül klasörünüz' yapın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.