2010-02-27 56 views
13

我目前在无头模式下使用PDE构建我的OSGI Bundle项目。 PDE Antrunner任务使用Eclipse安装,我只是将它指向我的本地Eclipse安装。Eclipse:无头PDE构建所需的Eclipse最低安装量是多少?

不幸的是我的eclipse安装大概是260MB,但我认为PDE构建不需要在标准eclipse安装中的所有插件。

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

我的目标是将这个“build-eclipse”文件夹签入到我的项目的SVN中,这样当您检查出来时,您可以拥有开始完整构建所需的一切,而无需触摸任何build.properties。但我不想承诺266MB的eclipse,如果我只需要20MB的。

感谢 克里斯托夫

回答

3

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

在我的PDE的经验,我发现它非常有用的区分:

    我使用交互式编辑
  • Eclipse的IDE
  • “月蚀”安装我是用无头PDE构建
  • “目标平台”(组插件/功能/等我建立的东西要看的。)

这听起来像这些都是在你的头脑清醒,独立的概念,以及:你有已经隔离了“目标平台”,并且正在寻找将您的交互式Eclipse与PDE构建器隔离开来。

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

在我的情况下,这并没有提到JDT中的任何内容,这让我觉得实际上尝试构建基于Java的插件会失败,但希望这可以提供另一个潜在客户(例如“无法找到org.eclipse.jdt “, 或者其他的东西)。

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

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

+0

伍迪嗨,为感谢您的回答。你对这三个概念是绝对正确的......这正是我所说的。我基本上想要摆脱“交互式Eclipse相关插件”。你的想法听起来不错,明天我会试试看。我会在这里发表我的发现。我想知道我们是否是唯一考虑这个问题的人? 谢谢克里斯托弗 – Christoph 2010-03-04 15:42:31

+0

好的,这里是我的第一个发现:org.eclipse.pde.build和依赖不足以构建。构建过程在不调试输出的情况下停止,因此我首先必须找出底层实际发生的情况。你知道任何命令行参数,以便我可以获得关于构建过程内部的更多调试输出吗? (例如。-verbose或其他) 如果我发现缺少什么,我会尝试逐步找到所需的插件,并将其发布到此处。 谢谢 Christoph – Christoph 2010-03-05 13:28:18

+0

Christoph,我不确定。 。 。但是当你运行一个命令行的PDE构建时,你正在启动一个OSGi运行库,据我所知它具有类似于Eclipse“Workspace”的地方,它可以缓存依赖信息等等,还有 - 在这里相关的 - 放置日志文件。也许你可以找出“工作区”的位置并阅读其日志? – 2010-03-05 17:10:32

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安装要小得多。

我采取了粗略的笔记;这里可能会有一些遗漏或者多余的步骤,但是应该指导它。

我:

  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. 在Package Explorer中右键单击产品定义,然后选择“导出... | Eclipse产品“。
  11. 告诉我想让我的PDE构建器实例去。
  12. 未选中“导出前同步”。
  13. 未选中“生成元数据存储库”。
  14. 点击“完成”。

现在我可以(继续)推出通过调用像下面这样的宏PDE从我的正常Ant构建构建(有没有更好的办法?):

<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="[email protected]{config-dir}" /> 

      <arg value="-Dbasedir=${basedir}" /> 
     </java> 
    </sequential> 
</macrodef> 
+0

嗨,伍迪,那真是个好消息。我最近没有足够的时间继续深入研究这个问题。但mayby我会找点时间,以便我可以验证你的发现。您可以减少构建eclipse安装的实际大小(MB)是多少? – Christoph 2010-05-07 10:10:24

+0

在我的情况下,结果是略低于20 MB。对于它是什么而言,这似乎仍然很大 - 也许我不应该包含那些可选的依赖关系 - 但这对我很有用。 – 2010-05-07 12:53:25

+0

我今天需要再做一次,以便我可以用Java 8构建。现在我的Eclipse IDE在Mars.1中有以下不同之处:1)步骤7中的“依赖关系”选项卡现在标记为“内容”。 2)我还添加了(在步骤7中)org.eclipse.equinox.launcher插件,以便我可以调用PDE Build。 3)导出后,我在Ant构建文件中更新了一些特定插件版本的路径。这似乎是关于它!新的PDE Build导出约为28 MB(在Windows上)。 – 2017-02-03 20:41:54