使用Nodeclipse Eclipse插件的maven / tycho构建,每个版本都有新的p2存储库。
在Bintray上发布,不允许更新文件。所以每个版本都在其文件夹中。
BaseFolder
BaseFolder/VersionFolder1
BaseFolder/VersionFolder2
BaseFolder/VersionFolder3
是否可以将BaseFolder
作为可扩展的p2存储库准备一次,并在以后添加VersionFolderN
?
因此,只有一个用于更新的URL,Eclipse平台可以在存储库中发现更新。
答案 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.jar
和compositeArtifacts.jar
以节省网络带宽。然而,这使得编辑文件变得不那么实用。
Eclipse同步发布存储库也使用此方法。例如,在撰写本文时,Eclipse Luna repository仅包含原始版本和SR 1(请参阅compositeContent,compositeArtifacts)。稍后将添加SR 2,以便用户无需配置新的存储库URL即可获得更新。