2011-03-04 7 views
1

Eclipse에서 나는 원격 eclipse p2 사이트의 기능을 추가하는 .target 파일을 만들었습니다.원격 p2 사이트에서 로컬 p2 사이트를 만드시겠습니까?

이제 대상 정의에 정의 된 집계 된 기능의 복사본 인 로컬 P2 사이트를 만들고 싶습니다. (모든 환경에서 가능하면 좋습니다).

maven3/tycho를 사용하는 빌드 시스템에서이 로컬 p2 사이트를 사용해야하지만 "안정적인"방법을 찾지 못했습니다. 다음을 시도했습니다 :

1) 대상 파일을 로컬 디렉토리로 내 보냅니다.

문제점 : 기능/플러그인이있는 폴더 만 p2 사이트를 만들지 않습니다.

2) 대상 파일을 로컬 디렉토리로 내보내고 디렉토리에서 Eclipse의 FeaturesAndBundlesPublisher 응용 프로그램을 실행하십시오.

문제점 : 이것은 p2 사이트를 만들지 만 원래 기능/번들 중 일부가 누락되었습니다.

p2.site using buckmeister

이 문제 : 다음 .target 파일의 내용에서 원래의 기능이 보존되지 않은 .target 파일에서 초기화 기능에서 P2 사이트를 만들 buckmeister 사용

3) 결과 p2 사이트. 특히 대상 파일에이 기능이 포함 된 경우 문제가 발생합니다. org.eclipse.equinox.executable.feature이 기능은 결과 p2 사이트에서 누락됩니다. \ org.eclipse.pde.core.bundle_pool

문제

workspace.metadata.plugins :

4)의 내용을 복사 유효한 P2 사이트가 아닙니다.

원격 P2 사이트에서 로컬 P2 사이트를 작동시키는 방법에 대한 제안 사항이 있으십니까?

+0

가능한 중복 Eclipse Indigo SR2 (3.7.2) 용 미러?] (http://stackoverflow.com/questions/9485146/how-do-i-create-a-mirror-for-eclipse-indigo-sr2-3-7- 2) – oberlies

답변

2

p2 mirror 명령을 사용하고 싶습니다. 미러링 할 원격 저장소 URL과 로컬 디렉토리를 지정하십시오. 여기에 Ant 매크로가있다. 대부분의 p2 저장소가 실제로 하나의 저장소 (아티팩트 및 메타 데이터)로 두 개의 미러 호출을 만드는 방법에 유의하십시오.

"bootstrap.platform"속성 세트가 필요합니다.이 패키지는 p2를 사용하려는 Eclipse 설치 위치입니다.

<macrodef name="p2.mirror"> 
    <attribute name="source"/> 
    <attribute name="destination"/> 
    <sequential> 
     <echo message="Mirroring repository @{source} to @{destination}..."/> 
     <java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true"> 
     <classpath> 
      <fileset dir="${bootstrap.platform}/plugins"> 
      <include name="**/org.eclipse.equinox.launcher_*.jar"/> 
      </fileset> 
     </classpath> 
     <arg line="-application org.eclipse.equinox.p2.artifact.repository.mirrorApplication"/> 
     <arg line="-source @{source}"/> 
     <arg line="-destination @{destination}"/> 
     </java> 
     <java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true"> 
     <classpath> 
      <fileset dir="${bootstrap.platform}/plugins"> 
      <include name="**/org.eclipse.equinox.launcher_*.jar"/> 
      </fileset> 
     </classpath> 
     <arg line="-application org.eclipse.equinox.p2.metadata.repository.mirrorApplication"/> 
     <arg line="-source @{source}"/> 
     <arg line="-destination @{destination}"/> 
     </java> 
    </sequential> 
    </macrodef> 
+0

두 개의 미러 호출을 만드는 방법에 대해 이해할 수 없습니다. 당신은 종종 두 개의 저장소가 있기 때문에 그것을 말합니다. 하지만 두 통화는 내가 볼 수있는 한 동일합니다. 따라서 모든 것을 얻으려면 두 번째 동일한 호출이 필요하다는 기대에 따라 호출을 반복하고 있습니까? 우리는 3 명이 필요 없다고 확신합니까? 왜 그걸 다 할 수있는 전화가 하나도 없습니까? – Rhubarb

+0

차이점을 발견하는 데 조심스럽게 걸립니다 ... p2.artifact.repository vs p2.metadata.repository –

0

대신 개미를 사용하면 명령 줄에서 직접 실행할 수 있습니다 : 입력 할 때

eclipse -nosplash -verbose 
    -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication 
    -source http://download.eclipse.org/releases/luna 
    -destination file:/temp/lunaclone 

eclipse -nosplash -verbose 
    -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication 
    -source http://download.eclipse.org/releases/luna 
    -destination file:/temp/lunaclone 

각 명령은 물론 한 줄이어야한다.

경우 Eclipse Project Update Sites을 살펴 것보다 대상 경로가

-destination file:C:/temp/lunaclone 

당신의 필요 다른 버전 (-source)의 경우처럼 될 것입니다 윈도우 시스템을 사용

내가 어떻게 만듭니 까 [의
관련 문제