2012-10-05 3 views
4

그래서 우리는 다음과 같은 시나리오OSGI와 메이븐과 비 OSGI 프로젝트

우리는 비 OSGi 프레임 enviorenment에 인 IntelliJ와 받는다는을 사용하여 프로젝트를 가지고 우리는 OSGI 환경에서 이클립스를 사용하여 프로젝트가에게 있습니다. 이클립스 프로젝트는 RCP 응용 프로그램을 개발 중이므로 OSGI (플러그인 아키텍처)를 사용합니다.

그래서 우리는이 : 프로젝트 A - 등 응용 프로그램을 만드는하지만 대상 플랫폼과 이클립스 프로젝트 구조를 사용하기위한 받는다는 티코 - 비 OSGI-환경 프로젝트 B에서 받는다는 조직 프로젝트. 프로젝트 프로젝트 A와 B 모두에서 작동해야하는 종속성이있는 Caven 프로젝트.

또한 maven-tycho가 작동 할 수 있도록 p2 플러그인과 함께 Nexus를 설치했습니다.

우리가 가진 큰 문제는 프로젝트 C를 구성하여 프로젝트 A와 B 모두에 문제없이 작동 할 수 있다는 것을 알 수 없다는 것입니다. 프로젝트 A에서 우리는 maven이 평소와 같이 작동해야하며 의존성. 그러나 우리는 또한 프로젝트 B에서 그 기능을 원합니다 (어쩌면 Nexus + Tycho의 조합으로)?

이 문제를 어떻게 해결해야합니까? 이 작업을 수행하는 방법에 대한 좋은 해결책을 찾지 못했습니다. 내가 아파치 펠릭스 번들 플러그인을 시도했지만, 원하는대로 작동시키지 못한다. 그것이 올바른 해결책입니까?

+1

프로젝트 A와 B가 프로젝트 C에 종속된다는 것을 의미합니까? – SpaceTrucker

답변

3

최선의 방법은 Nexus P2 Repository Plugin을 사용하는 것입니다.

maven-bundle-plugin을 사용하여 프로젝트 C의 표준 OSGi 번들을 개발하고 배포 할 수 있습니다. 이러한 번들은 Maven 빌드를 통해 프로젝트 A에서 직접 사용할 수 있습니다.

그런 다음 Nexus P2 Repository Plugin을 사용하여 해당 OSGi 번들을 표준 P2 저장소로 노출 할 수 있습니다.이 패치는 tycho 빌드를 통해 Project B에서 사용할 수 있습니다.

+1

필자는 마침내 작동했으며, P2와 Maven-felix 번들 플러그인이있는 Nexus입니다. 기억해야 할 몇 가지 사항은 다음과 같습니다. - Eclipse는 snapshopt와는 잘 작동하지 않습니다. 새 버전은 대상 플랫폼에서 처리되지 않습니다. 매번 새 버전 번호로 새로운 배포를 만들어야합니다. - maven-felix는 번들이 올바르게 작동 할 수 있도록 모든 의존성을 임베드 할 수 있습니다. – Simpor