Łącz / agreguj repozytoria eclipse P2 / rozszerzalne repozytorium p2

With Maven / tycho build for Nodeclipse Eclipse plugin there is new P2 repozytorium every release.

Wydanie odbywa się na Bintray, który nie pozwala na aktualizację plików. Więc każda wersja idzie w swoim folderze.

BaseFolder
BaseFolder/VersionFolder1
BaseFolder/VersionFolder2
BaseFolder/VersionFolder3

Czy jest możliwe, aby BaseFolder zostało przygotowane raz jako rozszerzalne repozytorium p2, a VersionFolderN dodane później?

Aby był tylko jeden URL dla aktualizacji i platforma Eclipse mogła wykrywać aktualizacje w repozytorium.

Author: Paul Verest, 2014-01-06

1 answers

To, czego szukasz, to złożone repozytorium p2. Będziesz potrzebował tylko następujących dwóch plików w folderze podstawowym:

  • A compositeContent.xml o następującej treści:

    <?xml version='1.0' encoding='UTF-8'?>
    <?compositeMetadataRepository version='1.0.0'?>
    <repository name='Project XYZ Releases Repository' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
        <properties size='1'>
            <property name='p2.atomic.composite.loading' value='true'/>
        </properties>
        <children size='3'>
            <child location='VersionFolder1'/>
            <child location='VersionFolder2'/>
            <child location='VersionFolder3'/>
        </children>
    </repository>
    
  • A {[3] } o następującej, podobnej treści:

    <?xml version='1.0' encoding='UTF-8'?>
    <?compositeArtifactRepository version='1.0.0'?>
    <repository name='Project XYZ Releases Repository' type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'>
        <properties size='0'>
        </properties>
        <children size='3'>
            <child location='VersionFolder1'/>
            <child location='VersionFolder2'/>
            <child location='VersionFolder3'/>
        </children>
    </repository>
    

Gdy zostanie wydana nowa wersja, po prostu dodaj nowy folder jako dziecko w obu plikach.

Dwa pliki mogą być również skompresowane jako ZIP i nazwane compositeContent.jar i compositeArtifacts.jar, aby zapisać przepustowość sieci. Jednak to sprawia, że edycja plików trochę mniej praktyczna.

Równoległe repozytoria wydań Eclipse również używają tego podejścia. Na przykład, w momencie pisania tego, Eclipse Luna repozytorium zawiera tylko oryginalne wydanie i SR 1 (patrz compositeContent, compositeArtifacts ). SR 2 zostanie dodany później, dzięki czemu użytkownicy będą mogli otrzymywać aktualizacje bez konieczności konfigurowania nowego adresu URL repozytorium.

 15
Author: oberlies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-17 17:25:05