2014-09-19 4 views
0

번들 중 하나는 joda-time/2.2.0에 'imports'를 가지고 있지만 시작할 때 항상 joda-time/1.6.2를 사용할 수 있습니다 Karaf의 시스템 폴더. 어떻게 그런 일이 일어날 지 모르겠습니다. 카라프에게 우리가 지정한 시스템 번들보다 시스템 번들을 선택하지 말라고 말하는 방법이 있습니까? 번들을 설치하여 폴더를 배포하면 설치할 수 있습니다.OSGi 번들은 지정된 번들을 통해 시스템 번들을 선택합니다.

답변

0

이와 같이 가져올 패키지 뒤에 가져올 버전을 추가하기 만하면됩니다.

Import-Package: org.xx.xx;version=1.5.0 

모두의 this

+0

관련 팀에이 팀에 요청했습니다. 아마도 다양한 버전이있을 것입니다. –

1

먼저 참조,이 번들의 확인 정말 필요 두 가지 버전을 확인합니다. 그렇습니다.하지만 실제로는 다른 버전의 번들이 애플리케이션 내에 있어야하는 경우가 아니라면 일반적으로 그 작업을 수행 할 수 있습니다. joda-time을 사용하는 번들과 해당 패키지가 Import-Package 문에서 지정한 버전 범위를 확인하십시오.

난 당신이 알고 있다면 모르겠지만, 패키지를 가져 오는 경우, 당신은 항상, 암시 적 또는 명시 적으로 당신이와 호환되는 버전 범위를 지정

  • 당신이 만약 버전을 지정하지 않으면 버전 범위가 0에서 무한대까지 호환된다는 것을 효과적으로 나타낼 수 있습니다.
  • 하나의 버전 만 지정하면 해당 버전과 그 이상, 최대 무한대까지 호환 가능하다고 명시합니다.
  • 두 가지 버전을 지정하면 해당 범위와 호환 가능하다고 표시되며 사각형 또는 대괄호를 사용하여 테두리가 포함되거나 제외되는지를 명시 할 수 있습니다.

명시 적으로 범위를 지정하는 것은 좋지 않은 것으로 간주됩니다. OSGi에는 의미 론적 버전 관리에 대한 백서가 있습니다.

따라서 joda-time을 사용하는 번들의 버전을 이해하고 joda-time 구현을 하나만 배포 할 수 있는지 확인하고 자신의 번들이 해당 버전과 호환되는 버전 범위를 사용하는지 확인하십시오.

관련 문제