2012-08-28 1 views
6

난 그냥 티코 함께 시작 해요, 나는 초기 단계에서 난처한 상황에 빠진거야에 "불만족 제약". 어쩌면 내가 그렇게 단지의 경우, 뭔가를 오해하고있어, 여기에 내가 기대하고있는 무슨이다 : 나는 OSGi 프레임 스타일로 내 번들의 요구 사항을 정의 (예 : Import-Package를 통해 MANIFEST.MF에서), 그리고 티코는 어떻게 든 나를 대신 비행에 대한 정보가 재정의 할 필요가 있음 사용 모든 것을 Maven 스타일로 (즉, pom.xml에 의존성을 둘 필요가 없습니다).티코 - 가져 오기 - 패키지

<properties> 
    <tycho-version>0.15.0</tycho-version> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>tycho-maven-plugin</artifactId> 
      <version>${tycho-version}</version> 
      <extensions>true</extensions> 
     </plugin> 
    </plugins> 
</build> 

일부를 통해 고투 :

그래서, 나는 m2eclipse에 플러그인, m2eclipse에-티코에 추가하고, PDE 플러그인 및 치어에 다음 티코 물건을 넣어 이클립스에서 간단한 Maven 프로젝트를 만든 엉뚱한 구성 오류를 일으키고 Eclipse에서 오류나 경고를주지 않은 본질적으로 비어있는 프로젝트 (즉, 소스 코드가 없음)가 있습니다. 그런 다음 다른 프로젝트의 소스 코드를 in에 복사했고 예상대로 종속성이 없어서 컴파일러 오류가 발생했습니다. 첫 번째 것은 org.jboss.netty.channel의 AbstractChannel입니다. 나는 인 Netty의 버전 3.5.1.Final 사용, 그래서 나는 포함하는 내 MANIFEST.MF 편집 :

Import-Package: org.jboss.netty.channel;version="[3.5.1,4)" 

그때 어떻게 든 마술 나는 인 Netty를해야하고, 내가 가진 경우에 따라서 행동 것을 알아 내기 위해 티코를 기다리고 있었다 내 메이븐의 pom.xml에 다음과 같은 삽입 무언가 : 어디로 모르겠어요

Unsatisfied constraint: 'Import-Package: org.jboss.netty.channel;version="[3.5.1,4.0.0)" 

:

<dependency> 
    <groupId>org.jboss.netty</groupId> 
    <artifactId>netty</artifactId> 
    <version>3.5.1.Final</version> 
</dependency> 

대신 일어난 모든 나는 말, 이클립스 하나 추가 오류를했습니다 그에게서 레. 티코가해야 할 일에 대한 근본적인 오해가 있습니까? 아니면 <dependency>의 pom.xml 항목에 MANIFEST.MFImport-Package 항목에서 "마법"번역을 할 수 있도록 순서를 설정해야 뭔가가있다? 또는 다른 것? 사전에

감사합니다.

답변

3

그래, 취할 좀 더 장애물이 있습니다.

는 한마디로, 당신은 종속성을 검색 할 수있는 저장소와 티코를 제공해야합니다. 좀 더 상세하게

:

당신이 당신의 타겟 플랫폼을 설정하고 티코에 전달해야
  • . 이미 타겟 플랫폼을 어떤 식 으로든 설정했다면, Eclipse는 Netty를 찾지 못한다고 불평 할 것이다.
  • 작업 영역에서 대상 플랫폼을 공유했는지 확인하십시오. 그러면 Tycho에서도이 플랫폼에 액세스 할 수 있습니다.
  • this
  • 티코 호환 대상 플랫폼처럼 지원 P2 레이아웃, 그래서 아무 일반 디렉토리를 그 대상 플랫폼을 사용하는 티코에게. 제가 질문 한 것처럼, p2 repo를 만드는 가장 좋은 방법은 무엇인지 확신 할 수 없습니다. while back. 무엇이든 대답은 없지만 나는 (어떤 종류의) 나를 위해 일하는 것을 설명한다.

+0

감사합니다! 대상 플랫폼은 제가 누락 된 것이 었습니다. – user1628103

3

이해가 이미 꽤 좋은,하지만 실종 작지만 중요한 부분이,이 도움이 프랭크 희망 : 메이븐에서, 가 달리없는 표준 기본 저장소 (같은 "중앙") 타이코에. Tycho가 OSGi 의존성을 해결하기 위해 검색 할 위치를 구성해야합니다.

이 검색 범위는 Tycho에서 "target platform"이라고합니다. different ways so include artifacts in the target platform; 가장 쉬운 방법은 추가 <layout>p2</layout> 속성을 사용하여 POM에 종속성을 포함하는 p2 저장소를 구성하는 것입니다 (종속성을 포함하는 p2 저장소를 알고있는 것으로 가정).

0

추가 종속성을 통해 누락 된 번들을 추가 할 수도 있습니다 구성을 실패한 번들에 직접 전송하십시오.

<plugin> 
<groupId>org.eclipse.tycho</groupId> 
<artifactId>target-platform-configuration</artifactId> 
<version>${tycho.version}</version> 
<configuration> 
    <dependency-resolution> 
    <extraRequirements> 
    <requirement> 
    <type>eclipse-plugin</type> 
    <id>org.eclipse.jface.text</id> 
    <versionRange>0.0.0</versionRange> 
    </requirement> 
    </extraRequirements> 
</dependency-resolution> 
</configuration> 
</plugin>