在eclipse中我创建了一个.target文件,我在其中添加了远程eclipse p2站点的功能。
现在我想创建一个本地p2站点,它是目标定义中定义的聚合功能的副本(最好是适用于所有环境)。
我需要使用maven3 / tycho将此本地p2站点与构建系统一起使用,但尚未找到“稳定”的方法来执行此操作。我尝试过以下方法:
1)将目标文件导出到本地目录。
问题: 不创建p2站点只是具有功能/插件的文件夹。
2)将目标文件导出到本地目录并在目录上运行eclipse FeaturesAndBundlesPublisher应用程序。
问题: 这会创建一个p2站点,但缺少一些原始功能/包。
3)使用buckmeister从.target文件初始化的功能创建p2站点:
问题: .target文件内容的原始功能不会保留在生成的p2站点中。特别是如果目标文件包含以下功能,则会出现此问题: org.eclipse.equinox.executable.feature在最终的p2站点中将缺少此功能。
4)复制内容:
workspace.metadata.plugins \ org.eclipse.pde.core.bundle_pool
问题:不是有效的p2网站。
有关如何从远程p2站点创建工作(具有完整功能)本地p2站点的任何建议吗?
答案 0 :(得分:2)
您想使用p2 mirror命令。为它提供一个远程存储库URL和一个镜像到的本地目录。这是一个Ant宏来执行此操作。请注意它是如何进行两次镜像调用的,因为大多数p2存储库实际上是两个存储库(工件和元数据)。
它需要“bootstrap.platform”属性集,这是Eclipse安装的一个位置,你要使用它的p2。
<macrodef name="p2.mirror">
<attribute name="source"/>
<attribute name="destination"/>
<sequential>
<echo message="Mirroring repository @{source} to @{destination}..."/>
<java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true">
<classpath>
<fileset dir="${bootstrap.platform}/plugins">
<include name="**/org.eclipse.equinox.launcher_*.jar"/>
</fileset>
</classpath>
<arg line="-application org.eclipse.equinox.p2.artifact.repository.mirrorApplication"/>
<arg line="-source @{source}"/>
<arg line="-destination @{destination}"/>
</java>
<java classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true">
<classpath>
<fileset dir="${bootstrap.platform}/plugins">
<include name="**/org.eclipse.equinox.launcher_*.jar"/>
</fileset>
</classpath>
<arg line="-application org.eclipse.equinox.p2.metadata.repository.mirrorApplication"/>
<arg line="-source @{source}"/>
<arg line="-destination @{destination}"/>
</java>
</sequential>
</macrodef>
答案 1 :(得分:2)
您可以直接从命令行运行Ant,而不是使用Ant:
eclipse -nosplash -verbose
-application org.eclipse.equinox.p2.artifact.repository.mirrorApplication
-source http://download.eclipse.org/releases/luna
-destination file:/temp/lunaclone
eclipse -nosplash -verbose
-application org.eclipse.equinox.p2.metadata.repository.mirrorApplication
-source http://download.eclipse.org/releases/luna
-destination file:/temp/lunaclone
进入时,每个命令当然应该是一行。
如果您使用的是Windows系统,则目标路径就像
-destination file:C:/temp/lunaclone
如果您需要不同的版本(-source
),请查看Eclipse Project Update Sites