2013-04-26 3 views
0

내 응용 프로그램에 추가 소프트웨어를 추가하려면 p2 리포지토리를 만들어야합니다. 예를 들어 모든 i18n 번들을 외부화하려고하므로 i18n 조각 만있는 기능 세트가 있습니다.피처 컨텐츠와 종속성이없는 p2 리포지토리

내가하는 방법은 pde가 빌드하고 제품과 i18n 플러그인 및 기능을 포함하는 완전한 p2 저장소에서 가져온 것입니다.

p2.mirror ant 태스크를 사용하여 i18n 조각 만있는 p2 저장소를 만들려고 시도하지만 문제는 항상 해당 i18n 번들이 의존하는 호스트 번들을 포함한다는 것입니다. 이것은 i2n과 함께 내 응용 프로그램의 대부분을 가지고 있기 때문에 내 p2 repo 거대한 만듭니다.

<p2.mirror source="file://${build.repo.path}" destination="file://${i18n.repo.path}"> 
    <iu id="org.talend.i18n.all-feature.feature.group" version="" /> 
</p2.mirror> 

주어진 기능에서 참조되는 묶음 만 포함하고 해당 기능을 호스트하지 않는 p2 저장소를 만드는 방법이 있습니까?

답변

1

당신은 소위 "슬라이스 옵션"을 추가하고 만 엄격한 버전 범위 종속성을 지정할 필요가 :

기능과 플러그인 사이의 포함 관계는 엄격한 버전 범위로 P2로 인코딩
<p2.mirror ...> 
    <slicingoptions followStrict="true" /> 
</p2.mirror> 

종속성이 있으므로이 옵션을 사용하면 기능 및 포함 된 플러그인 만 가져와야합니다.

p2는 게시자가 feature.xml의 정보를 올바르게 번역하는 데 의존한다는 점에 유의하십시오. 비표준 게시자를 사용하거나 p2.inf을 통해 게시에 영향을 미치는 경우 엄격한 버전 범위 종속성이 포함 물에 1 : 1과 일치하지 않을 수 있습니다. 이 경우 원하는 것을 성취 할 수 없습니다. p2 미러링은 p2 메타 데이터에서만 작동합니다. – feature.xml을 다시 볼 수있는 옵션이 없습니다.

+1

버전에 포함 된 플러그인의 경우에도 게시자는 게시 컨텍스트에서 사용 가능한 정확한 버전으로 엄격한 버전 종속성을 만들어야합니다. 이렇게하려면 컨텍스트에서 필요한 모든 플러그인이 있어야합니다. (게시 컨텍스트를 관리하는 Tycho를 사용하는 것이 좋습니다.) – oberlies