Eclipse RCP : 플러그인의 2 가지 버전이 필요한 제품 생성 문제

StackOverflow https://stackoverflow.com/questions/479254

  •  20-08-2019
  •  | 
  •  

문제

외부 제품과의 호환성이 있기 때문에 플러그인 2 개를 포함 해야하는 RCP 응용 프로그램을 구축해야합니다. 플러그인은 org.apache.lucene이며 현재 Eclipse 3.4에서 1.9.1입니다. 다른 응용 프로그램과 호환 되려면 버전 1.4.103이 필요합니다. RCP 앱은 Eclipse 3.2를 사용하여 원래 개발되었으며 3.4로 업그레이드 한 후이 문제가 발생했다고 말해야합니다.

개발 및 테스트 중에 내 앱은 정상적으로 작동했습니다. 실행 구성에 1.4.103 플러그인을 직접 추가해야했지만 그렇지 않으면 괜찮습니다.

이제 Build Product 단계에 있으며 제품 마법사의 구성 탭에 Lucene 플러그인의 2 가지 버전을 추가하는 방법을 찾을 수 없습니다. 런타임에 오류는 1.4.103 버전의 Lucene이 누락되었음을 나타냅니다.

도움이 되었습니까?

해결책

OSGI에서 번들은 번들 사이의 직접적인 의존성 개념이 없다고 생각하십시오.
대신, 각 번들에는 "가져 오기 패키지"및 "가져 오기 서비스"헤더를 통해 다른 번들로 등록 될 것으로 예상되는 서비스 및 패키지를 나열합니다.

반대로 번들에는 "Export-Package"및 "Export-Service"를 통해 수출 할 서비스 및 패키지가 나와 있습니다. 따라서 번들 구현 사이에는 단단한 종속성이 없습니다. 일부 번들이 가져온 패키지를 제공하는 한 번들이 행복 할 것입니다.

그림으로 WTP (웹 도구 플랫폼) 복제 된 javax.wsdl 플러그인이 있습니다:


이제 3.2 플러그인 프로젝트를 하위 메뉴 "PDE 도구"로 변환했는지 확인해야합니다 (프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오).

그런 다음 정의 할 수 있습니다 RCP 응용 프로그램을위한 제품, 구성을 정의 할 수 있습니다 (표적) 개발 대상과 달리 런타임의 경우.

다른 팁

나는이 문제에 대해 Birt를 번들로 만든 제품을 다루고 있었다. 따라서 Javax.wsdl의 2 가지 버전에 대한 요구 사항을 물려 받았다. 많은 Wiki 페이지, Bugzilla 항목 등을 읽은 후 PDE (플러그인 개발 환경) 빌드 프로세스에서 문제가된다는 것을 알았습니다. 이 문제는 이제 Eclipse 3.5에서 수정되었습니다. Bugzilla 항목이 있습니다 https://bugs.eclipse.org/bugs/show_bug.cgi?id=265438.

기본적으로 Eclipse 자체를 사용하면 버전을 모두 지정하고 모든 것을 올바르게 해결할 수 있습니다. 그러나 PDE 빌드 (동일한 제품 파일 사용)는 최신 버전의 플러그인 만 가져옵니다. 현재 Eclipse 3.4베이스에 대한 우리의 솔루션은 추가 플러그인을 대상의 플러그인 폴더에 강제로 복사하는 것이 었습니다. 이것은 당분간 우리의 문제를 해결했으며, 우리는 앞으로 Eclipse 3.5 RCP베이스로 마이그레이션하여 위의 언급 된 버그 수정을 선택할 것입니다.

다른 이름으로 소스 코드 에서이 플러그인을 컴파일하는 것은 어떻습니까? 아니면 이전 플러그인 기능에 대한 래퍼를 최신으로 작성합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top