Eclipse:无头PDE构建所需的最低Eclipse安装是什么?

时间:2010-02-27 13:48:30

标签: eclipse eclipse-pde headless

我目前正在无头模式下使用PDE构建来构建我的OSGI Bundle项目。 PDE Antrunner任务使用Eclipse安装,我只是将它指向我当地的Eclipse安装。

不幸的是,我的eclipse安装大约260MB,但我认为PDE版本不需要在标准的eclipse安装中使用所有这些插件。

现在有人做了无头PDE构建所需的最小插件列表吗? 我在自定义目标平台文件夹中实际拥有的所有依赖项,所以我想我在eclipse安装中唯一需要的是PDE构建实际需要的依赖项。但是那些是什么? 我可以将安装缩小到最低限度吗?

我的目标是在我的项目的SVN中签入这个“build-eclipse”文件夹,这样当你检查它时,你就拥有了启动完整版本所需的一切,而不需要触及任何build.properties。但如果我可能只需要20MB的话,我不想提供266MB的日食。

由于 克里斯托夫

2 个答案:

答案 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:

  1. 解雇了最近的Eclipse IDE(在我的例子中,我目前使用的是3.5实例)。
  2. 使用了临时工作空间,因此对目标平台的更改不会搞砸我的“真实”项目。
  3. 确保目标平台设置为我想要绘制PDE构建器插件的位置(在我的例子中,只是我运行的Eclipse)。 (窗口|首选项... |插件开发|目标平台)
  4. 创建了一个新的空项目。
  5. 在该项目中创建了一个新的产品配置(使用“基本设置”)。
  6. 在新产品配置的“概述”页面上,取消选中“该产品包含原生启动器工件。”
  7. 在依赖关系中,指定以下插件构成产品:
    • org.eclipse.pde.build
    • org.apache.ant
    • org.eclipse.jdt.core
  8. 选中“包含可选的依赖项。 。 。”
  9. 点击“添加必需的插件”。
  10. 在包资源管理器中右键单击产品定义,然后选择“导出... | Eclipse产品“。
  11. 告诉我希望我的PDE构建器实例去哪里。
  12. 未选中“导出前同步”。
  13. 未选中“生成元数据存储库”。
  14. 点击“完成”。
  15. 现在我可以(继续)从我的普通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 IDE
  • 我用于无头PDE构建的“Eclipse”安装
  • “目标平台”(插件/功能/等等我正在构建的东西取决于)

听起来这些都是明确的,独立的概念:您已经隔离了“目标平台”,并希望将您的交互式Eclipse与PDE构建器隔离开来。

您可以尝试在交互式Eclipse中创建一个新的(空白)工作区(只是为了确保您正在查看它,而不是在目标平台上),打开“插件”视图,右键单击一个有希望的 - 像org.eclipse.pde.build这样的插件,并选择“Open Dependencies”。 “平面布局”可能是比分层结构更有用的查看结果的方法,但在我的Eclipse中我似乎无法复制和粘贴此列表。

在我的情况下,这没有提到JDT中的任何内容,这让我觉得实际上尝试构建基于Java的插件会失败,但希望这会提供另一个引导(例如“找不到{{ 1}}“或某事。”

似乎“应该”使用软件更新机制,目标平台或Buckminster来命名一个插件并让所有其他插件到位。也许您可以使用目标平台,选择您需要的插件,点击按钮选择所需的插件,然后以某种方式导出一个“构建”,有效地收集所有这些插件?

我承认我们刚刚在交互式Eclipse中签入并将其用作我们的PDE构建器。我们不会以交互方式使用它,我们也会维护一个单独的目标平台。我们的PDE构建器显然不是最小的,但也许也可能是,所以我希望你能用你的发现来更新这个空间。