2013-09-03 25 views
6

Başka bir alt projesi olan bir Gradle JAR projesi oluşturmaya çalışıyorum ve JAR dosyasının bir üst dizinde olmasını (ebeveynin veya kardeşin "lib" dizininde spesifik olması) istiyorum. Bunun için Gradle'ı nasıl yapılandırabilirim ve bu nerede belgelenir?Not: Projenin ana dizininde olmak için jar konumunu nasıl yapılandırabilirim?

+0

Bunu neden yapmak istiyorsunuz? Her projenin kendi oluşturma dizini vardır ve bundan sapmayı önermem. Kafa karıştırıcı ve artık projeleri bağımsız olarak temizleyemeyeceğiniz anlamına geliyor. –

+0

Merhaba Peter - Alt proje yapılarının ayrıştırılması ilkesini anlıyorum, ancak bu durumda Gradle kullanılarak oluşturulan bir alt projede (groovy kaynakları içeren) bir jar'a bağlı bir Grails eklentisi oluşturuyorum. Eklentinin "lib" dizinine çıkış yapmak istiyorum. Eklentinin kendisi (bir Grails eklentisi olduğundan), sadece bir alt projeye sahip değildir. –

+0

Umarım Gradle, Maven gibi proje yapısı hakkında katı kurallar koymadan yapmak istediğimi yapmak için yeterince esnektir;) –

cevap

11

build.gradle yılında ekleyin:

libsDirName = '../../lib' 

yapılandırma ayarları java plugin için resmi Gradle docs gösterilmiştir.

BTW, Peter ve Hiery tarafından verilen yorumlar ve cevapların arkasındaki niyetle tamamen katılıyorum, ancak bazen en basit çözüm en iyisidir.

5

yorum yazdı Peter yazdı. Ancak, ana projenin alt modemin çıktısına bağlı olduğunu belirtmek istediğinizi düşünüyorum. Bunu ifade etmek ve ebeveynin alt modülün çıktısını 'lib' dizinine kopyalamasını sağlamak ve daha mantıklı hale getirmek.

task assembleSubModules(type: Copy) { 
    destinationDir = file("lib") 

    into("lib") { 
    project.subprojects.each { p -> 
     from(p.tasks.withType(Jar)*.outputs) 
    } 
    } 
} 
İlgili konular