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

Pau*_*est 12 eclipse repository p2 aggregation tycho

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

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

BaseFolder
BaseFolder/VersionFolder1
BaseFolder/VersionFolder2
BaseFolder/VersionFolder3
Run Code Online (Sandbox Code Playgroud)

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

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

obe*_*ies 17

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

  • A 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>
    
    Run Code Online (Sandbox Code Playgroud)
  • A 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>
    
    Run Code Online (Sandbox Code Playgroud)

发布新版本时,只需在两个文件中将新文件夹添加为子文件夹即可.

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

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