我目前正在无头模式下使用PDE构建来构建我的OSGI Bundle项目。 PDE Antrunner任务使用Eclipse安装,我只是将它指向我当地的Eclipse安装。
不幸的是,我的eclipse安装大约260MB,但我认为PDE版本不需要在标准的eclipse安装中使用所有这些插件。
现在有人做了无头PDE构建所需的最小插件列表吗? 我在自定义目标平台文件夹中实际拥有的所有依赖项,所以我想我在eclipse安装中唯一需要的是PDE构建实际需要的依赖项。但是那些是什么? 我可以将安装缩小到最低限度吗?
我的目标是在我的项目的SVN中签入这个“build-eclipse”文件夹,这样当你检查它时,你就拥有了启动完整版本所需的一切,而不需要触及任何build.properties。但如果我可能只需要20MB的话,我不想提供266MB的日食。
由于 克里斯托夫
答案 0 :(得分:5)
我今天终于需要自己做这件事(以解决a problem I was having where directories with spaces in their names weren't being included in the bundle PDE Build produced)。我最终得到了一些可以构建我的(基于Java的)插件集合的东西。我不知道它是否是“最小”,但它是以Java PDE Build为重点,并且比完整的Eclipse IDE安装小得多。
我做了粗略的笔记;这里可能会有一些遗漏或多余的步骤,但主要是它应该引导。
I:
org.eclipse.pde.build
org.apache.ant
org.eclipse.jdt.core
现在我可以(继续)从我的普通Ant构建中启动PDE Build,方法是调用如下的宏(有更好的方法吗?):
<macrodef name="build-a-product">
<attribute name="config-dir"/>
<sequential>
<property name="product-build-file" value="${pde-builder-path}\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml" />
<java jar="${pde-builder-path}\plugins\org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar" fork="yes" failonerror="yes" >
<arg value="-application" />
<arg value="org.eclipse.ant.core.antRunner" />
<arg value="-buildfile" />
<arg value="${product-build-file}" />
<arg value="-Dbuilder=@{config-dir}" />
<arg value="-Dbasedir=${basedir}" />
</java>
</sequential>
</macrodef>
答案 1 :(得分:3)
我不能直接回答你的问题,但我可以挥手一点,其中一些可能会帮助你找到真正的答案。
在我的PDE经验中,我发现区分非常有用:
听起来这些都是明确的,独立的概念:您已经隔离了“目标平台”,并希望将您的交互式Eclipse与PDE构建器隔离开来。
您可以尝试在交互式Eclipse中创建一个新的(空白)工作区(只是为了确保您正在查看它,而不是在目标平台上),打开“插件”视图,右键单击一个有希望的 - 像org.eclipse.pde.build
这样的插件,并选择“Open Dependencies”。 “平面布局”可能是比分层结构更有用的查看结果的方法,但在我的Eclipse中我似乎无法复制和粘贴此列表。
在我的情况下,这没有提到JDT中的任何内容,这让我觉得实际上尝试构建基于Java的插件会失败,但希望这会提供另一个引导(例如“找不到{{ 1}}“或某事。”
似乎“应该”使用软件更新机制,目标平台或Buckminster来命名一个插件并让所有其他插件到位。也许您可以使用目标平台,选择您需要的插件,点击按钮选择所需的插件,然后以某种方式导出一个“构建”,有效地收集所有这些插件?
我承认我们刚刚在交互式Eclipse中签入并将其用作我们的PDE构建器。我们不会以交互方式使用它,我们也会维护一个单独的目标平台。我们的PDE构建器显然不是最小的,但也许也可能是,所以我希望你能用你的发现来更新这个空间。