Maven 종속성에서 “번들”유형의 의미는 무엇입니까? 종속성에서 “번들”의 의미는

예를 들어이 종속성에서 “번들”의 의미는 무엇입니까?

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



답변

이러한 종류의 아티팩트는 일반적으로 Apache Felix의 일부인 maven-bundle-plugin 을 사용하여 생성되는 OSGi 번들 입니다.

플러그인은 모듈에서 사용할 수있는 모든 클래스 (모듈의 자체 클래스, 종속성에서 제공하는 클래스, 클래스 경로의 다른 클래스)를 하나의 거대한 집합으로 취급 한 다음 해당 클래스의 하위 집합을 선택하여 jar로 묶을 수 있습니다. 또한 아티팩트를 OSGi 번들로 만드는 데 필요한 매니페스트 정보를 생성합니다.

따라서이 종속성을 사용하여 가져 오는 아티팩트는 jar이지만 abdera-core 모듈 내부에 정의 된 클래스뿐만 아니라 훨씬 더 큰 클래스 집합에서 하위 집합을 선택하여 빌드 된 jar입니다.

abdera 프로젝트의 pom을 살펴보면 maven-bundle-plugin어떤 클래스가 번들에 추가되고 어떤 클래스가 보류되었는지에 대한 아이디어를 제공 하는 구성을 볼 수 있습니다.


답변