jar와 모든 의존성 (약 20 개의 다른 jar)을 래핑하는 번들을 만들고 내 자신의 인터페이스를 노출하려고합니다. 전체 종속성을 포함하는 "봉인 된 구성 요소"를 만들고 싶기 때문에 모든 종속성에 대한 번들을 만들고 싶지 않습니다. 마지막 줄이 문제되고 (이것은 단지 샘플이 현실 세계에서 번들 - 클래스 경로에서 약 20 항목이 있습니다 ...입니다) Bundle-ClassPath에서 Private-Package 항목을 만들지 않으려면 어떻게해야합니까?
Bundle-Version: 0.0.0.${tstamp}
Export-Package: \
pub
Include-Resource: lib=lib/
Bundle-ClassPath: .,lib/ant-1.9.3.jar
처럼
는
문제를 보여주는 샘플 BND 파일이 보인다 . Include-Resource 항목은 포장 된 항아리를 빨아 들여 그 모든 종속성을 묶음에 넣으면 효과가 있습니다. 그러나 모든 jar를 Bundle-ClassPath에 추가하면 bnd가 Private-Package에 추가합니다. 일반적으로 나는 bnd 파일이 커지면서 포함 된 jar 파일에 패키지가 너무 많아서 bndtools가 파일을 생성하려고 시도하는 것을 제외하고는 상관하지 않을 것입니다.
개인용 패키지를 손으로 작성하여 bnd 파일에 넣으려고했지만 bnd로 덮어 쓰면됩니다.
아니오 ... 이것은 Java 언어 문제점이 아닌 bnd/OSGI 문제점입니다. –
은 http://stackoverflow.com/questions/16936310/how-to-handle-import-package-entries-which-come-from-jars-on-the-bundle-classpat에 무료로 제공됩니다. –