2016-04-07 8 views
1

de. Eclipse, geliştirme ve test için kullanılır.kullanın Maven yalnızca, geliştiriciler de OSGI ithalat/ihracat yoluyla birbirlerine kullanan birden OSGi Paketler üzerinde çalışmak birikmesi sunucusunda değil, Şu anda geliştirici

Şimdi, Maven kullanarak (repo) tüm OSGi demetleri inşa gereken bir CI-sunucu (Jenkins) kurmak için gidiyoruz. Sonuç olarak, sadece CI-sunucusunda maven için bir ihtiyaç vardır. Bu aynı zamanda geliştiricilerin, iş istasyonlarında maven ile temas etmedikleri için geliştirdikleri bir pom.xml'yi ne gördüklerini ne de önemsedikleri anlamına da gelir.

İlk sorum, eğer mümkün ise. Geliştirici, Manifest'teki ithalatı ve ihracatı değiştirdiğinde, maven bu bağımlılıkları derleyici için kullanılabilir hale getirmek zorundadır. Örneğin maven, BundleA'dan bir paket ithal eden BundleB'yi kurmak istiyor. Normal olarak, bir pom.xml, Bundle A'ya (daha önce yerel maven repo yerine yerleştirilmesi gereken) bir mavna bağımlılığı içerecektir. Ancak, geliştiricilerin kendi MANIFEST.MF'lerini yalnızca kendi paketlerinde değiştirdiklerinde pom.xml dosyasında giriş yok. Maven, MANIFEST'leri ayrıştırmak için doğru maven bağımlılıklarını belirleyebilir mi? Ya da başka bir çözüm: maven'e önceden yapılmış tüm kavanozlarla birlikte bir sınıf yolunu söyleyin? sadece bir ci-sunucu üzerinde değil geliştiricileri maven kullanılması önerilir eğer

İkinci sorum olacaktı.

Selamlar

+0

Ayrıca bakınız [Bu cevap] (http://stackoverflow.com/a/11373010/1744774) için [I POM kullanmalıyım birinci veya MANIFEST ilk Maven ile OSGi uygulaması? Geliştirirken] (http://stackoverflow.com/q/11373009/1744774) POM ilk önce MANIFEST karşılaştırması için. –

cevap

2

geliştiriciler yapı için kullanırım o zaman ne maven kullanmıyorsanız. Otomatik bir yapı sistemine sahip olmanın mantıklı olduğunu düşünüyorum. Yani, ya maven'i ya da geliştirici sistemindeki gradeye benzer bir şey kullanmalısın. Diğer bir soru ise, Manifest dosyalarını elle tutmanın mantıklı olup olmadığıdır. PDE'nin tutulma biçiminde çalışması böyledir, ancak yapım sırasında Manifest'i oluşturmanın çok daha etkili olduğunu düşünüyorum. Bu, migen-demeti-eklentisini felix'den kullanarak yapılabilir. Böyle çalışmak çok daha kolay. Bazı örnekler için

karaf tutorials görüyoruz. Eğer takip olabilir

Diğer bir seçenek bndtools içine bakmak ve onların gradle oluşturur. Biraz özel ama çok uygun.

+0

Aslında, geliştiricilerimiz gerçekten inşa etmiyor. Eclipse içerisindeki osgi demetlerini derlerler (temel olarak bir osgi kabıdır). –

+1

Şey ... Ben on yıl öncesinden bu çalışma tarzını biliyorum ... :-) Şakalar bir kenara .. sorun şu: Eğer geliştirici uygulama inşa edemiyorsa CI sunucusundaki yapının nasıl olduğundan emin olabilirsiniz iş? –

+0

Şimdiye kadar, geliştiriciler her zaman tüm ürünü (çoklu osgi demetleri/projeleri) kontrol etmek ve eclipse'nin ihracat işlevini kullanarak son osgi-demeti-kavanozlarını oluşturmak zorundadır. Artık geliştiriciler, tüm ürünü incelemeli ve yerel Eclipse ortamlarında test etmelidir. Ancak yeni bir şey, bir CI sunucusunun osgi demetleri oluşturması ve bir sonraki adım olarak, sadece uygulamayı çalıştıran ve geliştiricilerin kullandığı bu eclipse-ekinoks karışımını yürütmeyen bir osgi konteynerinde otomatik entegrasyon testleri olmalıdır. –