Apa arti tipe "bundle" dalam ketergantungan maven?

91

Apa arti dari "bundle" mis. Dalam ketergantungan ini:

<dependency>
    <groupId>org.apache.abdera</groupId>
    <artifactId>abdera-core</artifactId>
    <version>1.1.2</version>
    <type>bundle</type>
    <scope>compile</scope>
</dependency>
Zeemee
sumber

Jawaban:

83

Artefak semacam ini adalah bundel OSGi, biasanya diproduksi menggunakan maven-bundle-plugin yang merupakan bagian dari Apache Felix .

Plugin memperlakukan semua kelas yang tersedia untuk modul Anda (kelas modul itu sendiri, kelas yang disediakan oleh dependensi, kelas lain di classpath) sebagai satu set raksasa, lalu memungkinkan Anda memilih subset dari kelas tersebut untuk digabungkan ke dalam jar. Ini juga membuat informasi manifes yang diperlukan untuk menjadikan artefak sebagai bundel OSGi.

Jadi artefak yang Anda tarik dengan menggunakan dependensi ini adalah toples, namun ini adalah toples yang dibuat dengan memilih subset dari kumpulan kelas yang jauh lebih besar, bukan hanya kelas yang ditentukan di dalam modul abdera-core.

Jika Anda melihat pom untuk proyek abdera, Anda akan melihat maven-bundle-pluginkonfigurasi yang akan memberi Anda gambaran tentang kelas mana yang telah ditambahkan ke bundel, dan mana yang telah ditahan.

joelittlejohn
sumber