2010-08-29 16 views

cevap

25

Eclipse kullanıyorsanız: Bunun için bir sihirbaz var.

Bir dizi kavanoz kitaplığı seçmenizi ve bu kavanozları içeren bir eklenti projesi (yani OSGi paketi) oluşturmanızı sağlar.

Burada bulabilirsiniz:

File -> New -> Other ... -> Plug-in from Existing jar Archives. 

alt text

+4

+1, çünkü kendi OP oy vermedi :((eğer doğruysa o zaman oy verin!) – helios

+0

Bu sihirbaz ekran görüntüsü yeterlidir. –

9

sadece Eklenti Dev Toolkit parçası olmalıdır bu girişleri eklemek için çok pratik bir yol sağlar Tutulma için bir paket yaratıcısı yoktur tezahür

için OSGi meta verileri eklemek gerekir.

İşlemi ayrıntılandıran bir article ve Bnd aracı, maven ve benzerleri ile nasıl yapılacağı.

Kişisel olarak the pax tools'u çok seviyorum. Tüm komut satırı tabanlı, ancak çok pratik. Mevcut bir kavanozun OSGi paketini oluşturmak için bnd tool'u kullanabilirsiniz.

+0

pax araçları ve pax-wrap-jar bağlantıları öldü – maarten

5

Öncelikle depoları

  1. SpringSource http://www.springsource.com/repository
  2. Fusesource http://repo.fusesource.com/

Eğer OSGi bulamazsanız etkin sürümleri üzerinden kitaplığınızın bir OSGi özellikli sürümünü bulabilirsiniz olmadığını kontrol edin. Pax aracını kullanarak devam edebilirsiniz - PaxConstruct veya aQute's Bnd tool kullanın.

+1

Fusesource http://repo.fusesource.com/ öldü – maarten

+0

@maarten Teşekkürler, bağlantıları daha güncel kaynaklara güncelledim. –

+0

@PeterTillemans, hangi bağlantıları güncellediniz? Ne yazık ki, yeni repo URL kaynağının ne olduğunu bilmiyorum .. cevabımda lütfen çekinmeyin –

1

Eclipse Bundle Recipe proje Maven deposundan tüketilen kavanozları için OSGi meta veri eklemek için bir Maven tabanlı bir yaklaşım sunar.

Özünde, bnd tool kullanır. Bu araç İsviçre ordusu bıçağı gibidir. Kavanoz ve sınıf dosyalarını analiz eder ve paket ithalatını ve ihracatını uygun şekilde hesaplar. Tescilli kavanozları kendiniz dönüştürmek için bnd kullanmalısınız. available in Maven Central. partiye

0

Geç varış: osgi-run eklenti uygularsanız

Eğer Gradlekullanıyorsanız, projenize normal bir bağımlılık olarak kavanozu ekleyebilir.

Osgi tarafından çalıştırılan eklenti, kavanozu sizin için bir pakete şeffaf bir şekilde saracak, içindeki her paketi dışa aktaracak ve tüm ithalatlarını hesaplayacaktır. Gradle, kavanozun geçiş bağımlılıklarını bileceği için, gerektiğinde de onlar için aynısını yapacaktır.

kavanoz (ler) daha sonra ya run.sh veya run.bat komut dosyalarını çalıştırmaya gradle runOsgi veya gradle createOsgi, ile başlayabilir OSGi işletilen yaratır OSGi çalışma zamanı, bir parçası olacak.

Gerçek ambalajlama, tabiki OSGi dünyasının İsviçre bıçağı olan Bnd tarafından yapılır.

Sarma işleminin nasıl gerçekleşeceğini yapılandırmak isterseniz (genellikle içe/dışa aktarma işlemi yapılmalıdır), Gradle derleme dosyasında kolayca yapabilirsiniz, ayrıntılar için documentation'a bakın.

Örnek:

wrapInstructions { 
    // use regex to match file name of dependency 
    manifest("c3p0.*") { 
     // import everything except the log4j package - should not be needed 
     instruction 'Import-Package', '!org.apache.log4j', '*' 
     instruction 'Bundle-Description', 'c3p0 is an easy-to-use library for making traditional ' + 
       'JDBC drivers "enterprise-ready" by augmenting them with functionality defined by ' + 
       'the jdbc3 spec and the optional extensions to jdbc2.' 
    } 
} 
2
  • mevcut JAR arşivinden yeni Plug-in projesi oluşturun. enter image description here

  • kavanoz dosyası önümüzdeki

enter image description here

  • tıklayın
  • ihraç edilecek ekleyin ve proje adı. enter image description here

    NOT:

  • emin OSGI çerçeve hedef platform seçili olduğundan emin olun.
  • kaldırılmış olduğundan projeye JAR arşivleri Sıkıştırılmış -> bunu kaldırarak,

  • eğer Sıkıştırılmış JAR arşivleri projeye JAR tüm paketleri ihraç edecek sunulmasıdır Daha sonra gerekli paketleri MANIFEST.MF dosyasında dışa aktarmanız gerekir.

Bitir'i tıklatın. Çalışma alanınızda oluşturulan name transport-5.1.1 ile proje bulacaksınız. Ayrıca, doğrulayabilirsiniz, JAR'ın tüm paketleri MANIFEST.MF dosyasında verilir.