2013-10-24 18 views
13

Kaldırılan bazı gereksinimlerle ilgili bir paketimiz var ancak kodun mutlaka silinmesini istemiyoruz çünkü gelecekte tekrar ihtiyaç duyulacak bir olasılık var. Bu yüzden mevcut karınca yapımızda, bu paketi kavanozumuzda derlenmemizi sağladık. Bu sınıflar, bağımlılıklarını da kaldırdığımızdan dolayı derlenmezler, bu yüzden yapıya dahil edilemezler.Not: Belirli bir paketi kavanozdan nasıl hariç tutabilirsiniz?

ben şöyle Gradle bu işlevselliği taklit çalışılıyor: Hatta yukarıda dışlamak çağrısı ile

jar { 
    sourceSets.main.java.srcDirs = ['src', '../otherprojectdir/src'] 

    include (['com/ourcompany/somepackage/activityadapter/**', 
       ... 
     'com/ourcompany/someotherpackage/**']) 

    exclude(['com/ourcompany/someotherpackage/polling/**']) 
} 

(ve ben de köşeli parantez olmadan denedim), gradle hala çalışıyor derleme hatalarına neden olan polling sınıflarını derleyin. Gradle'ın bu paketi derlemeyi denemesini nasıl engellerim?

cevap

24

Derlenmesini istemediğiniz bazı kaynaklarınız varsa, Jar'a yerleştirilmiş sınıf dosyaları için değil, kaynaklar için bir süzgeç bildirmeniz gerekir. Bir şey gibi:

sourceSets { 
    main { 
     java { 
      include 'com/ourcompany/somepackage/activityadapter/**' 
      include 'com/ourcompany/someotherpackage/**' 
      exclude 'com/ourcompany/someotherpackage/polling/**' 
     } 
    } 
} 
+1

Teşekkür kullanabilirsiniz! Knew Oldukça hedefte değildim :) – StormeHawke

+1

@Peter Cevabınız için teşekkür ederiz. Sorun, sınıfın daha yeni versiyonun diğer bağımlılığında da bulundu. Daha yeni sürümü kullanmak ve sınıfı eski sürümden çıkarmak istiyorum. – Achaius

22

Eğer bu paketleri derlemek istemiyorsun Bu çözüm geçerlidir, ancak bunları derlemek ve JAR dışında tutmak istiyorsanız

// tag::jar[] 
jar { 
    exclude('mi/package/excluded/**') 
    exclude('mi/package/excluded2/**') 
} 
// end::jar[] 
+0

Benim build.gradle dosyamda jar yazılamıyor, bunu nereden kodlayabileceğimi önerir misiniz, Önceden teşekkürler. –

İlgili konular