2015-09-01 17 views
15

Grails 3'e bir yerel/kavisli jar dosyası ekleme hakkında belge ve kod örnekleri bulmaya çalışıyorum .x projesi?Grails projesine "mavize edilmemiş" bir kavanoz bağımlılığı nasıl eklenir (Grails 3.x)

Ayrı iş parçacığı How to add a non-maven jar to grails'u buldum - ancak bu yalnızca 2.3 no'lu mezura ve dosya yapısı ve yapılandırması 3.x'te büyük bir gözden geçirme işlemine tabi tutuldu.

Herhangi bir yardım ve (özellikle) kod örnekleri harika olurdu! .jar yerel proje dizininde ve dağıtım için .war ile paketlemek niyetindeyim. Ayrıca, bağımlılığı ekledikten sonra, denetleyici & hizmet dosyalarından yöntemlerini arayabilmem gerekir mi? ya da bunlara da dahil etmem gerekiyor mu?

thx!

+2

kendiniz kavanoz indirip mükemmel çalışacak lib klasörüne yerleştirebilirsiniz. Buildconfig'i değiştirmeye gerek yok. – Abhishek

+2

grails 3.0.1'de 'lib' klasörü yoktur, bu 2.x'den 3.x'e kadar olan değişikliklerden biriydi. –

cevap

22

Grails 3, Gradle kullanır, bu yüzden yerel bir kavanozu dahil etme konusunda özel bir şey yok. build.gradle dosyanızın dependencies bloğuna bir dosya bağımlılığı eklemek kadar kolaydır. Başına

Gradle documentation on File Dependencies:

bir yapılandırma için bir bağımlılık olarak bazı dosyaları eklemek için, sadece bir bağımlılık olarak bir dosya koleksiyonunu pass:

dependencies { 

    ... 

    compile files('libs/a.jar', 'libs/b.jar') 
    // or 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 

Yukarıdaki örnekte iki farklı yöntem sunmaktadır yerel bir libs/ dizininde bulunan kavanozları dahil etmek;/veya yapabilirsin. Kavanoz (lar) dosya sisteminde herhangi bir yerde olabilir, sadece doğru yola işaret ettiğinizden emin olun.

Sınıfları, uygulamanızdaki bağımlılıktan kullanmak için bunları hizmetinize, denetleyicilere ve normalde yaptığınız gibi diğer tüm sınıflara dahil edersiniz. libs/a.jar bir sınıf org.example.Something gelmiştir ki, bunu sevdiği Grails sınıfın üstüne bir ithalat eklersiniz:

import org.example.Something 
+1

Mükemmel! Çok teşekkürler dpcasady. SO için bile olağandışı bir cevap. –

+0

Kavanoz dosyalarını eklemek için 3. sınıfta libs dosyası (libs klasörü dediğiniz gibi) yok gibi görünüyor, http://docs.grails.org/3.0.x/guide/upgrading.html – Zimm3r

+0

Bu sadece farklı bir örnek gösteren rastgele bir örnektir. Dosya sistemindeki herhangi bir dizine işaret etmenin yolları, lib'leri çağırmak ya da projeye göre göreceli olmak gibi özel bir şey yoktur. Burada bir dizin oluşturabilir veya dosya sisteminizdeki diğer herhangi bir klasöre referansta bulunabilirsiniz. – dpcasady