2012-11-21 3 views
3

Tycho 0.15.0에 이상한 문제가 있습니다. 내 MANIFEST.MF에는 8 개의 종속 항목이 있지만 Tycho는 그 중 하나를 해결하지 못합니다. 출력은 다음과 같습니다 Tycho가 종속성을 다운로드했지만 해결하지 못함

[INFO] 1 operation remaining. 
[INFO] Fetching org.eclipse.xtext.logging_1.2.15.v201206120633.jar (4kB of 10.12kB at 0B/s) from http://my.server.com/p2-3.7.2/plugins/ 
[INFO] Resolving class path of MavenProject: <...my project ...> @ <...path to my project...>/pom.xml 
[ERROR] Internal error: java.lang.RuntimeException: org.osgi.framework.BundleException: Bundle <...my project...> cannot be resolved 
[ERROR] Resolution errors: 
[ERROR] Bundle <...my project...> - Missing Constraint: Require-Bundle: org.eclipse.xtext.logging; bundle-version="1.2.15" 
[ERROR] -> [Help 1] 
org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: org.osgi.framework.BundleException: Bundle <...my project...> cannot be resolved 
Resolution errors: 
Bundle <...my project...> - Missing Constraint: Require-Bundle: org.eclipse.xtext.logging; bundle-version="1.2.15" 

내가 알고있는 무엇 :

  1. 항아리 org.eclipse.xtext.logging_1.2.15.v201206120633.jar이 항아리는
  2. 티코 내 P2 서버에서 다운로드 할 수 있습니다 손상되지
  3. 존재 (내가 가진 내 컴퓨터의 ~/.m2/repository/p2/osgi/bundle/org.eclipse.xtext.logging/1.2.15.v201206120633/org.eclipse.xtext.logging-1.2.15.v201206120633.jar)
  4. MANIFEST.MF가 올바르게 보입니다.

    Manifest-Version: 1.0 
    Ant-Version: Apache Ant 1.8.2 
    Bundle-Vendor: %providerName 
    Bundle-Localization: fragment 
    Fragment-Host: org.apache.log4j;bundle-version="[1.2.15,1.2.16)" 
    Bundle-RequiredExecutionEnvironment: J2SE-1.5 
    Bundle-Name: %pluginName 
    Bundle-SymbolicName: org.eclipse.xtext.logging;singleton:=true 
    Created-By: 1.5.0_22-b03 (Sun Microsystems Inc.) 
    Bundle-Version: 1.2.15.v201206120633 
    Bundle-ManifestVersion: 2 
    Import-Package: org.eclipse.core.runtime,org.osgi.framework;version="1 
    .5.0" 
    
  5. 타이코 0.16.0에도 같은 문제가 있습니다.

아이디어가 있으십니까? 당신은 다음과 같은 이유로이 문제를보고있다

+1

org.eclipse.xtext.logging은 조각입니다. 나는 당신이 그것을 직접적으로 의지 할 수 있다고 믿지 않습니다. 아마도 org.apache.log4j – Simon

+0

과 직접 관련이 있는지 확실하지 않지만, org.eclipse.core.runtime은 분할 패키지 http://help.eclipse.org/juno/index.jsp?topic=%2Forg입니다. eclipse.platform.doc.isv % 2Fguide % 2Fruntime_components.htm. Import-Package 명세서를 명확히하거나 (Require-Bundle을 사용하십시오) – jsievers

+0

도보십시오. https://bugs.eclipse.org/bugs/show_bug.cgi?id=353116 – jsievers

답변

5

:

  • org.eclipse.xtext.logging는 독립형 번들 (당신이 볼 수있는 조각, 아니다 그것이이 하나 다른 번들을 정의하는 MANIFEST.MF에서 Fragment-Host을 가지고 있기 때문에 의 단편입니다.)
  • 조각이 p2로 인코딩되는 경우 단편의 Require-Bundle은 p2에서 확인할 수 있습니다. p2 기반 의존성 분석은 대상 플랫폼의 어떤 아티팩트가 로컬 Maven 저장소에 다운로드되는지 결정합니다.
  • 조각에 대한 Require-Bundle은 OSGi 서버에서 해결되지 않습니다. 클래스 경로 (콘솔 출력 Resolving class path)를 계산하기 위해 Tycho는 Equinox 해결자를 사용합니다. 해당 확인자는 정확히 Require-Bundle to fragments is invalid을 감지합니다.