组合/聚合eclipse p2存储库/可扩展的p2存储库

时间:2014-01-06 14:15:43

标签: eclipse repository aggregation tycho p2

使用Nodeclipse Eclipse插件的maven / tycho构建,每个版本都有新的p2存储库。

Bintray上发布,不允许更新文件。所以每个版本都在其文件夹中。

BaseFolder
BaseFolder/VersionFolder1
BaseFolder/VersionFolder2
BaseFolder/VersionFolder3

是否可以将BaseFolder作为可扩展的p2存储库准备一次,并在以后添加VersionFolderN

因此,只有一个用于更新的URL,Eclipse平台可以在存储库中发现更新。

1 个答案:

答案 0 :(得分:15)

您正在寻找的是复合p2存储库。您只需要在基本文件夹中包含以下两个文件:

  • 包含以下内容的compositeContent.xml

    <?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>
    
  • compositeArtifacts.xml,内容如下:

    <?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>
    

发布新版本时,只需在两个文件中添加新文件夹作为子文件。

这两个文件也可以压缩为ZIP并命名为compositeContent.jarcompositeArtifacts.jar以节省网络带宽。然而,这使得编辑文件变得不那么实用。

Eclipse同步发布存储库也使用此方法。例如,在撰写本文时,Eclipse Luna repository仅包含原始版本和SR 1(请参阅compositeContentcompositeArtifacts)。稍后将添加SR 2,以便用户无需配置新的存储库URL即可获得更新。