2013-05-29 3 views
4

저는 약 6 개월 동안 벽에 머리를 때려 왔으며 제 3 자 리소스를 사용하여 Eclipse 플러그인을 개발하는 메커니즘을 간결하게 이해하지 못했습니다.Maven 종속성을 사용하여 이클립스 플러그인 개발

우리는 Eclipse 기반 ODA를 개발하여 REST 기반 정보 세트에 액세스하는 사내 Spring 기반 코드를 사용하려고 시도하고있다.

  • 는 티코 나 펠릭스 번들 플러그인을 사용하여 정보를 번들 이클립스 우리 받는다는 유물을 강화합니다 : - 폭 넓은 스트로크에서

    이 우리가 할 수 있어야한다고 생각하는 것이다.

  • Eclipse를 통해 ODA 구현 & UI 용 플러그인 프로젝트를 설정하십시오.
  • Tycho가 플러그인 용 품등을 생성하도록하십시오.

여기 내가 진흙 투성이가됩니다. Maven의 확인 메커니즘을 통해 의존성을 제공합니다 - 플러그인의 종속

  • POM-먼저 정의하기위한 표준 메커니즘이다 - 나는 두 가지 방법
    1. 매니페스트-먼저

      이 있다는 것을 이해합니다.

    이클립스 플러그인을 개발 한 적이 없어서 어디서부터 시작해야할지 모르겠습니다.

    다른 질문 중 하나는 이클립스 플러그인 개발자가 이미 기존의 제 3 자 코드 (예 : Apache HttpClient 4.x)를 어떻게 활용합니까? 그들은 항아리를 다운로드하고, 프로젝트 내에서 디렉토리에 덤프하고, 클래스 패스에 추가 한 다음, 거기에서 이동하거나 아이비, 메이븐, 그라프와 함께 사용되는 것과 유사한 "저장소"메커니즘을 가지고 있습니까?

    사전에 감사 드리며 내가 조금이라도 사과했다면 사과드립니다.

  • 답변

    1

    Eclipse 플러그인이 라이브러리를 사용하는 가장 좋은 방법은 OSGi 번들과 같습니다. 해당 번들을 대상 플랫폼에 설치하고 eclipse.org 플러그인과 동일한 방식으로 참조하십시오. 일부 도서관 제공 업체는 이미 자사의 라이브러리를 OSGi 번들로 제공하고 있습니다. 없다면 일반적으로 몇 개의 목록 항목을 추가하여 일반 라이브러리 항아리를 OSGi 번들로 바꿀 수 있습니다.

    사용하는 빌드 시스템 및 필요한 라이브러리가 온라인 p2 저장소에 패키지화 된 OSGi 번들로 제공되는지 여부에 따라 URL을 참조하고 빌드를 사용하여 번들을 다운로드하고 설치하십시오. 종속성 Eclipse 플러그인을위한 빌드 시스템을 선택하는 문제는 여전히 관련이있는 경우

    +0

    팁 주셔서 감사합니다! 지금 - 내 성실함을 위해 - 그리고 이것은 분명 어려울 수 있습니다 - 어떻게 OSGi 번들을 설치합니까? URL을 기준으로 원격 위치에서 참조 할 수 있습니까? –

    +0

    번들은 "p2 저장소"에 게시됩니다. p2 시스템은 Eclipse 환경에 번들 프로비저닝을 제공합니다. URL이 p2 저장소인지 확인하려면 artifacts.jar 및 content.jar를 찾으십시오. 번들을 가지고 있지만 p2 저장소가 없다면, 다양한 빌드 시스템은 설치할 로컬 저장소를 합성하는 수단을 가지고 있습니다. –

    +0

    이 영역을 더 자세히 살펴보기 전에 빌드 시스템을 선택해야합니다. 많은 답변은 당신이가는 곳에 달려 있습니다. Maven/Tycho 접근법에는 지원을 위해 연락을 취할 수있는 커다란 커뮤니티가 있습니다. 또한 Eclipse Plugin Development Environment (PDE) 와도 호환 가능합니다. –

    1

    : 나는 새로운 Gradle을 플러그인을 발표

    오늘 : (내 생각) Wuff 버전 0.0.1은 완전히 문제를 해결합니다. Eclipse 번들 및 응용 프로그램을 "일반"Gradle 프로젝트처럼 빌드 할 수 있습니다. 모든 OSGi woodoo는 자동 생성됩니다 (사용자 정의 가능). 종속성은 OSGi 또는 "일반"라이브러리인지 여부에 관계없이 모든 종속성은 일반적인 종속성 종속성입니다.

    소스 및 문서 : https://github.com/akhikhl/wuff

    2

    면책 조항 :이 완전히 대답하는 것은 불가능하므로 귀하의 질문은 매우 광범위하다. 그래도 검색 할 항목을 알 수 있도록 몇 가지 힌트를 줄 수 있습니다.

    Eclipse 유니버스에서 라이브러리의 기본 소스 (바이너리 종속성의 의미에서)는 p2 리포지토리입니다. 그러나 p2 저장소는 Eclipse 컨텍스트 외부에서 거의 사용되지 않으므로 예를 들어 Apache HTTP 클라이언트 프로젝트의 다운로드 페이지에서 p2 저장소를 찾으십시오.

    이 문제점을 해결하기 위해 p2 저장소에서 Eclipse 프로젝트가 사용하는 라이브러리를 제공하는 Eclipse Orbit Project이 있습니다.

    Eclipse 궤도에서 라이브러리 또는 라이브러리 버전을 찾을 수없는 경우 Maven 리포지토리의 라이브러리를 사용할 수도 있습니다. 예를 들어, pomDependencies = consider 메커니즘을 통해 Tycho가 지원합니다.

    그러나 이클립스 플러그인은 OSGi 번들 인 라이브러리에만 의존 할 수 있습니다. 따라서 Maven 저장소에있는 라이브러리가 아직 OSGi 번들이 아닌 경우 먼저 OSGi 번들로 변환해야합니다. maven-bundle-plugin과 Embed-Dependency 메커니즘을 사용합니다.

    관련 문제