A.3. 번들 플러그인 구성
A.3.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
번들 플러그인에는 기능하기 위해 정보가 거의 필요하지 않습니다. 모든 필수 속성은 기본 설정을 사용하여 유효한 OSGi 번들을 생성합니다.
기본값만 사용하여 유효한 번들을 생성할 수 있지만 일부 값을 수정할 수도 있습니다. 플러그인의 instructions
요소 내부에서 대부분의 속성을 지정할 수 있습니다.
A.3.2. 구성 속성 링크 복사링크가 클립보드에 복사되었습니다!
일반적으로 사용되는 구성 속성 중 일부는 다음과 같습니다.
A.3.3. 번들의 심볼릭 이름 설정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 bundle 플러그인은 Bundle-SymbolicName
속성 값을 groupId + "." +
artifactId 로 설정합니다.
groupId 에 하나의 섹션만 있는 경우 클래스가 있는 첫 번째 패키지 이름이 반환됩니다.
예를 들어 Id 그룹이
commons-logging:commons-logging
이면 번들의 심볼릭 이름은org.apache.commons.logging
입니다.artifactId 가 groupId 의 마지막 섹션과 같은 경우 groupId 가 사용됩니다.
예를 들어 POM에서 그룹 ID와 아티팩트 ID를
org.apache.maven:maven
로 지정하는 경우 번들의 심볼릭 이름은org.apache.maven
입니다.artifactId 가 groupId 의 마지막 섹션으로 시작되면 해당 부분이 제거됩니다.
예를 들어 POM에서 그룹 ID와 아티팩트 ID를
org.apache.maven:maven-core
로 지정하는 경우 번들의 심볼릭 이름은org.apache.maven.core
입니다.
번들의 심볼릭 이름에 대한 자체 값을 지정하려면 예 A.2. “번들의 심볼릭 이름 설정” 과 같이 플러그인의 instructions
요소에 Bundle-SymbolicName
하위 항목을 추가합니다.
예 A.2. 번들의 심볼릭 이름 설정
A.3.4. 번들 이름 설정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 번들 이름은 ${project.name}
으로 설정됩니다.
번들 이름에 대한 자체 값을 지정하려면 예 A.3. “번들 이름 설정” 과 같이 플러그인의 instructions
요소에 Bundle-Name
하위를 추가합니다.
예 A.3. 번들 이름 설정
A.3.5. 번들 버전 설정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 번들 버전은 ${project.version}
으로 설정됩니다. 모든 대시(-
)는 점(.
)으로 교체되고 숫자는 최대 4자리까지 채워집니다. 예를 들어 4.2-SNAPSHOT
는 4.2.0.SNAPSHOT
가 됩니다.
번들 버전에 대한 자체 값을 지정하려면 예 A.4. “번들 버전 설정” 에서와 같이 번들 버전
하위를 플러그인의 instructions
요소에 추가합니다.
예 A.4. 번들 버전 설정
A.3.6. 내보낸 패키지 지정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 OSGi 매니페스트의 Export-Package
목록은 기본 패키지, .
. 및 .internal
이 포함된 패키지를 제외하고 로컬 Java 소스 코드의 모든 패키지로 채워집니다.
플러그인 구성에서 Private-Package
요소를 사용하고 내보낼 패키지 목록을 지정하지 않으면 기본 동작은 번들의 Private-Package
요소에 나열된 패키지만 포함합니다. 내보낸 패키지가 없습니다.
기본 동작은 매우 큰 패키지로 발생하며 비공개로 유지해야 하는 패키지를 내보낼 수 있습니다. 내보낸 패키지 목록을 변경하려면 플러그인의 instructions
요소에 Export-Package
하위를 추가할 수 있습니다.
Export-Package
요소는 번들에 포함할 패키지 목록을 지정하고 내보낼 패키지 목록을 지정합니다. 패키지 이름은 *
와일드카드 기호를 사용하여 지정할 수 있습니다. 예를 들어 com.fuse.demo.*
항목에 com.fuse.demo
.*로 시작하는 프로젝트의 classpath의 모든 패키지가 포함되어 있습니다.
항목을 접두사로 지정할 패키지를 지정할 수 있습니다 !
. 예를 들어 !com.fuse.demo.private
항목은 com.fuse.demo.private
패키지를 제외합니다.
패키지를 제외할 때 목록의 항목 순서가 중요합니다. 목록은 처음부터 순서대로 처리되며 이후의 충돌 항목은 무시됩니다.
예를 들어 com.fuse.demo.private
패키지를 제외한 com.fuse.demo
.demo로 시작하는 모든 패키지를 포함하려면 다음을 사용하여 패키지를 나열하십시오.
!com.fuse.demo.private,com.fuse.demo.*
!com.fuse.demo.private,com.fuse.demo.*
그러나 com.fuse.demo.*,!com.fuse.demo.private
를 사용하여 패키지를 나열하는 경우 첫 번째 패턴과 일치하므로 번들에 com.fuse.demo.private
이 포함됩니다.
A.3.7. 개인 패키지 지정 링크 복사링크가 클립보드에 복사되었습니다!
내보내 지 않고 번들에 포함할 패키지 목록을 지정하려면 번들 플러그인 구성에 Private-Package
명령을 추가할 수 있습니다. 기본적으로 Private-Package
명령을 지정하지 않으면 로컬 Java 소스의 모든 패키지가 번들에 포함됩니다.
패키지가 Private-Package
요소 및 Export-Package
요소 둘 다의 항목과 일치하는 경우 Export-Package
요소가 우선합니다. 패키지가 번들에 추가되고 내보내집니다.
Private-Package
요소는 번들에 포함할 패키지 목록을 지정하는 데 사용되는 Export-Package
요소와 유사하게 작동합니다. bundle 플러그인은 목록을 사용하여 번들에 포함할 프로젝트의 classpath에서 모든 클래스를 찾습니다. 이러한 패키지는 번들에 패키지되지만 내보내지지 않습니다( Export-Package
명령어에서도 선택하지 않는 한).
예 A.5. “번들에 개인 패키지 포함” 번들에 개인 패키지를 포함하는 구성을 보여줍니다.
예 A.5. 번들에 개인 패키지 포함
A.3.8. 가져온 패키지 지정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 번들 플러그인은 OSGi 매니페스트의 Import-Package
속성을 번들 콘텐츠로 참조하는 모든 패키지 목록으로 채웁니다.
기본 동작은 일반적으로 대부분의 프로젝트에 충분하지만 목록에 자동으로 추가되지 않는 패키지를 가져오려는 인스턴스를 찾을 수 있습니다. 기본 동작으로 인해 원치 않는 패키지를 가져올 수도 있습니다.
번들에서 가져올 패키지 목록을 지정하려면 플러그인의 instructions
요소에 Import-Package
하위 항목을 추가합니다. 패키지 목록의 구문은 Export-Package
요소 및 Private-Package
요소에 대해 동일합니다.
Import-Package
요소를 사용하는 경우 플러그인은 번들의 콘텐츠를 자동으로 검사하여 필요한 가져오기가 있는지 여부를 확인하지 않습니다. 번들의 콘텐츠를 스캔하려면 패키지 목록에 *
를 마지막 항목으로 배치해야 합니다.
예 A.6. “번들에서 가져온 패키지 지정” 번들에서 가져온 패키지를 지정하기 위한 구성을 표시합니다.
예 A.6. 번들에서 가져온 패키지 지정
A.3.9. 더 알아보기 링크 복사링크가 클립보드에 복사되었습니다!
번들 플러그인 구성에 대한 자세한 내용은 다음을 참조하십시오.