11장. Plain JAR 배포

초록

Apache Karaf에 애플리케이션을 배포하는 다른 방법은 일반 JAR 파일을 사용하는 것입니다. 일반적으로 배포 메타데이터가 포함되지 않은 라이브러리입니다. 일반 JAR은 WAR 또는 OSGi 번들도 아닙니다.

일반 JAR이 번들의 종속성으로 발생하는 경우 번들 헤더를 JAR에 추가해야 합니다. JAR이 공용 API를 노출하는 경우 일반적으로 가장 좋은 솔루션은 기존 JAR을 번들로 변환하여 다른 번들과 JAR을 공유할 수 있도록 하는 것입니다. 이 장의 지침을 사용하여 오픈 소스 Bnd 툴을 사용하여 변환 프로세스를 자동으로 수행합니다.

Bnd 툴에 대한 자세한 내용은 Bnd 툴 웹 사이트를 참조하십시오.

11.1. 랩 스키마를 사용하여 JAR 변환

11.1.1. 개요

기존 URL 형식과 함께 사용할 수 있는 wrap: protocol을 사용하여 JAR을 번들로 변환하는 옵션이 있습니다. wrap: 프로토콜은 Bnd 유틸리티를 기반으로 합니다.

11.1.2. 구문

wrap: protocol에는 다음과 같은 기본 구문이 있습니다.

wrap:LocationURL

wrap: 프로토콜은 JAR을 찾는 모든 URL의 접두사를 지정할 수 있습니다. URL 위치 URL의 위치 부분인 LocationURL 은 일반 JAR을 가져오고 wrap: 프로토콜의 URL 처리기를 가져온 다음 JAR을 번들로 자동으로 변환합니다.

참고

또한 wrap: 프로토콜은 더 정교한 구문을 지원하므로 Bnd 속성 파일을 지정하거나 URL에 개별 Bnd 속성을 지정하여 변환을 사용자 지정할 수 있습니다. 그러나 일반적으로 wrap: 프로토콜은 기본 설정에서만 사용됩니다.

11.1.3. 기본 속성

wrap: 프로토콜은 Bnd 유틸리티를 기반으로 하므로 Bnd와 동일한 기본 속성을 사용하여 번들을 생성합니다.

11.1. 랩 및 설치

다음 예제에서는 단일 console 명령을 사용하여 원격 Maven 리포지토리에서 일반 commons-logging JAR을 다운로드하고 동적으로 OSGi 번들로 변환한 다음 이를 설치한 후 OSGi 컨테이너에서 시작하는 방법을 보여줍니다.

karaf@root> bundle:install -s wrap:mvn:commons-logging/commons-logging/1.1.1

1. reference

랩: 프로토콜은 다양한 오픈 소스 OSGi 유틸리티에 대한 프로젝트인 Pax 프로젝트에서 제공합니다. wrap: protocol에 대한 전체 문서는 Wrap Protocol 참조 페이지를 참조하십시오.