예를 들어이 종속성에서 “번들”의 의미는 무엇입니까?
<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
어떤 클래스가 번들에 추가되고 어떤 클래스가 보류되었는지에 대한 아이디어를 제공 하는 구성을 볼 수 있습니다.