13

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

不幸的是,我的 Eclipse 安装大约有 260MB 大,但我认为 PDE 构建不需要标准 Eclipse 安装中的所有这些插件。

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

我的目标是将这个“build-eclipse”文件夹签入到我的项目的 SVN 中,这样当您签出它时,您就拥有了开始完整构建所需的一切,而无需触及任何 build.properties。但如果我可能只需要 20MB 的 Eclipse,我不想提交 266MB 的 Eclipse。

谢谢克里斯托夫

4

2 回答 2

5

我今天终于需要自己做这件事(为了解决我遇到的一个问题,即名称中带有空格的目录没有包含在 PDE Build 生成的捆绑包中)。我最终得到了可以构建我的(基于 Java 的)插件集合的东西。我不知道它是否“最小”,但它是 Java PDE Build-focused 并且比完整的 Eclipse IDE 安装小得多。

我做了粗略的笔记;这里可能有一些遗漏或多余的步骤,但主要它应该指导。

我:

  1. 启动了一个最近的 Eclipse IDE(在我的例子中,我目前使用的 3.5 实例)。
  2. 使用临时工作区,因此对目标平台的更改不会弄乱我的“真实”项目。
  3. 确保目标平台设置为我想从中绘制 PDE 构建器插件的位置(在我的情况下,只是我正在运行的 Eclipse)。(窗口 | 首选项... | 插件开发 | 目标平台)
  4. 创建了一个新的空项目。
  5. 在该项目中创建了一个新的产品配置(使用“基本设置”)。
  6. 在新产品配置的“概览”页面上,取消选中“产品包含原生启动器工件”。</li>
  7. 在依赖项上,指定以下插件构成产品:
    • org.eclipse.pde.build
    • org.apache.ant
    • org.eclipse.jdt.core
  8. 选中“包括可选依赖项。. 。”</li>
  9. 单击“添加所需的插件”。
  10. 在 Package Explorer 中右键单击产品定义并选择“Export… | Eclipse 产品”。
  11. 告诉它我希望我的 PDE 构建器实例去哪里。
  12. 取消选中“导出前同步”。
  13. 未选中“生成元数据存储库”。
  14. 点击“完成”。

现在我可以(继续)通过调用如下宏从我的正常 Ant 构建启动 PDE 构建(有更好的方法吗?):

<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>
于 2010-05-06T17:04:35.260 回答
3

我不能直接回答你的问题,但我可以稍微挥挥手,其中一些可能会帮助你找到真正的答案。

根据我的 PDE 经验,我发现区分以下内容非常有用:

  • 我用于交互式编辑的 Eclipse IDE
  • 我用于无头 PDE 构建的“Eclipse”安装
  • “目标平台”(一组插件/功能/等。我正在构建的东西取决于)

听起来这些在您的脑海中也是清晰的、独立的概念:您已经隔离了“目标平台”并希望将您的交互式 Eclipse 与您的 PDE 构建器隔离开来。

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

就我而言,这并没有提及 JDT 中的任何内容,这让我认为实际上尝试构建基于 Java 的插件会失败,但希望这会提供另一个线索(例如“找不到org.eclipse.jdt”或其他内容) .

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

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

于 2010-03-03T20:02:16.737 回答