문제

우리는 플러그인 개발을 용이하게하기 위해 OSGi 런타임 (Equinox)을 사용자 지정 클라이언트-서버 애플리케이션에 포함 시켰으며 지금까지 모든 것이 잘 진행되고 있습니다. 내장 된 매니페스트 편집기, 종속성 관리 및 내보내기 마법사로 인해 Eclipse를 사용하여 플러그인을 빌드했습니다. Eclipse를 사용하여 빌드를 관리하는 것은 Hudson을 통한 지속적인 통합에 그다지 도움이되지 않습니다.

다른 OSGi 번들에 의존하는 OSGi 번들이 있습니다. 커스텀 ANT 빌드에서 빌드 순서를 하드 코딩하는 것을 정말 싫어합니다. 우리는 이것이 과거이고 꽤 끔찍합니다. OSGi 종속성을 자동으로 해결하지 않는 경우 쉽게 관리 할 수있는 빌드 도구가 있습니까? 이를 수행하는 방법에 대한 적절한 예가 있습니까?

설명 :

생성 된 빌드 스크립트는 Eclipse를 통해서만 사용할 수 있습니다. Eclipse를 수동으로 실행해야합니다. 또한 Eclipse 빌드에 포함되지 않는 표준 대상이 있으며, 재생성 할 수 있으므로 생성 된 파일을 수정하고 싶지 않습니다 (포함 할 수 있음을 알고 있지만 Eclipse gen 파일을 모두 피하고 싶습니다. 함께)

다음은 내 프로젝트 레이아웃입니다. 라코 디스

Eclipse PDE를 사용할 때 각 플러그인에는 Manifest가 있지만 PDE가 나를 위해 수행하는 build.xml은 없습니다. Hudson을 사용하여 GUI 기반 프로세스를 자동화하기가 어렵습니다. 각각을 빌드하기 위해 내 자신의 build.xml을 설정하고 싶지만 종속성 및 빌드 순서 문제가 있습니다. 이러한 문제는 Manifest 파일 (OSGi 가져 오기를 설명하는 파일)에 의해 발생합니다. 예를 들어, PluginC는 PluginA에 의존하는 PluginB에 의존합니다. 올바른 순서로 빌드해야합니다. 빌드 순서를 수동으로 제어 할 수 있다는 것을 알고 있습니다. 빌드 순서 종속성 관리를 자동화하는 데 도움이되는 도구를 찾고 있습니다.

도움이 되었습니까?

해결책 4

오래된 질문을 마무리하는 중 ...

네트워크 연결 및 타이밍 부족으로 인해 설정이 maven에 도움이되지 않았습니다.오프라인 메이븐 설정이 있다는 것을 알고 있지만 시간이 너무 많이 주어졌습니다.빌드 프로세스를 재구성 할 시간이있을 때 적절한 설정을 사용하기를 바랍니다.

솔루션에는 Ant, BND 및 일부 사용자 지정 ant 작업이 포함되었습니다.다양한 번들 종속성은 수동으로 관리됩니다.우리는 이미 Ant를 사용하고있었습니다.BND와 사용자 지정 작업은이 모든 것을 하나로 묶었습니다.사용자 지정 작업은 bnd / eclipse 프로젝트가 동기화되었는지 확인했습니다.

다른 팁

Maven2 끝까지; m2eclipse 라는 Eclipse 플러그인이있어이를 관리하고 종속성 문제를 정확히 해결 한 다음 일부를 해결합니다. 문서로서의 무료 온라인 책 이 있습니다.

많은 구성 요소를 함께 번들링하려면 다중 모듈 프로젝트 를 자세히 살펴보세요. Maven이 빌드 순서와 종속성을 해결하도록합니다.

Eclipse 통합에 대한 장 도 있습니다. p>

이클립스와 메이븐뿐입니다. 다음으로 OSGi를위한 멋진 기능을 얻을 수 있습니다.

  • Apache Felix BND Maven 플러그인 이 자동으로 매니페스트를 생성하거나 최소한 도움이 필요합니다.
  • PAX OPS4J 프로젝트 및 해당 Maven 플러그인은 프로젝트 부트 스트랩, 런처 제공 등

    그리고 근본적으로 Maven 모듈 모델은 OSGi의 번들 모델과 완벽하게 맞습니다. 지금까지 3 년 이상 Maven을 사용하여 수백 개의 번들로 여러 제품을 구축하고 관리해 왔으며 대단합니다.

두 번째 Maven2.빌드를위한 Tycho 플러그인을 살펴보세요.이 플러그인은 Eclipse의 JDT 컴파일러를 사용하므로 Eclipse가 런타임에 수행하는 것과 같은 방식으로 컴파일 타임에 모든 OSGi 규칙을 구현합니다.

또는 Apache Felix BND 플러그인도 인기있는 것 같습니다.나는 Tycho가 Maven과 Eclipse 개발 환경을 더 밀접하게 통합하는 것처럼 보이기 때문에 선호합니다.

우리는 Buckminster 를 사용합니다. 의존성 해결, 다양한 저장소에서 가져 오기, 제품 빌드 및 패키징을 처리하는 빌드 및 어셈블리 프레임 워크입니다.

이클립스 도구 프로젝트입니다. PDE와 잘 통합됩니다.

이것은 RCP를 구축하는 데 사용하는 모든 메타 데이터가 Buckminster가 해결하고 구축하는 데 유용하다는 것을 의미합니다. 예를 들어, Manifest.MF, .product의 feature.xml 및 Require-Bundle 헤더

현재 각 번들에 빌드 스크립트가 없습니다. 이제 제품 당 단일 빌드가 있습니다. Buckminster는 종속성 그래프를 살펴 봅니다.

기존의 순항 제어 / 개미 시스템이 작동하도록하는 데 약간의 노력이 필요했습니다.하지만 Buckminster 팀은 Hudson을 사용하여 프로젝트 자체를 호스팅하기 시작했습니다. 빌드 설정도 다운로드 할 수 있다고 생각합니다.

상대적인 초기 단계 임에도 불구하고 정말 감명 받았습니다.

Pax-Construct 도 조사했지만 Maven을 사용하고 싶습니다.

현재 봄 DM도 검토 중입니다. 테스트 프레임 워크 는 단위 테스트 노력을 강화합니다.

PDE 헤드리스 빌드.Eclipse에 의해 잘 문서화되어 있습니다.Eclipse 플러그인을 빌드 중이고 명령 줄을 통해 수행하려는 경우 Eclipse PDE 헤드리스 빌드가 적합합니다.

문제가 발생한 위치를 자세히 설명해 주시겠습니까?OSGi 번들 종속성을 언급합니다.런타임 중입니까?아니면 컴파일 타임에?첫 번째 경우에 선언적 서비스를 고려해야합니다 (OSGi 사양 참조).

우리는 Eclipse 기반 OSGi 번들 / 플러그인을 빌드하기 위해 PluginBuilder 와 결합 된 Hudson을 사용합니다.이것은 플러그인 빌드를위한 Eclipse의 표준 PDE 프로세스를 기반으로합니다.이는 Eclipse를 컴파일러로 사용하는 것을 의미합니다.

Maven은 인터넷 연결이 필요하지 않습니다!-o 스위치를 사용하십시오.

maven 3.0.2를 사용합니다.

mvn generate : archetype 라코 디스

http://felix.apache.org 참조/site/apache-felix-maven-bundle-plugin-bnd.html

종속성을 번들에 추가하려면 pom.xml의이 짧은 예제를 사용하세요. 라코 디스

또는 라코 디스

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