6

我目前正试图让我的无头 pde-build 工作,但我被困在一个我不知道如何继续的点上。问题是如何定义相关的目标平台来编译插件。我有一个带有以下调用的 build.bat(全部在一行中!):

java -jar D:\target\eclipse\plugins\org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar 
-application org.eclipse.ant.core.antRunner 
-f D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml 
-Dbuilder=c:\pde-build\scripts %*

我尝试从不同的部分创建目标 Eclipse 平台:Eclipse SDK、RCP SDK、Delta Pack、PDE-SDK 的所有组合,但没有一个运行良好。

我收到以下错误:

BUILD FAILED
D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml:18: Cannot fin
d ${eclipse.pdebuild.scripts}/build.xml imported from D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_2010011
4\scripts\productBuild\productBuild.xml

其中变量 ${eclipse.pdebuild.scripts} 没有得到解决。我还尝试通过命令行提供此参数,但随后我收到另一个关于缺少 svn 任务的错误,这绝对令人困惑,因为这与我引用的本地 eclipse 安装一起工作。

当我将路径从 d:/target/eclipse 替换为我的本地 eclipse 安装时,pde 构建按预期工作!这导致我认为目标 eclipse 的配置不正确,但目前我不知道如何配置它!

我的目标是首先在我的本地站点上自动构建 pde,而不参考我的本地 Eclipse,然后将此构建过程集成到我们正在运行的 Cruisecontrol 实例中。

正如我已经看到关于定义目标日食的另一个问题,如果有人可以提供有关该问题的提示或事实,我会很高兴。

问候, 安德烈亚斯

4

3 回答 3

5

执行无头构建时,目标可以与实际运行构建本身的 eclipse 分开。您在这里遇到的问题是您用于运行构建的 Eclipse 没有正确安装 PDE/Build。

这就是为什么${eclipse.pdebuild.scripts}没有设置的原因,因为 PDE/Build 没有安装到那个 Eclipse 实例中,org.eclipse.pde.build 包没有被解析,并且设置这个属性的代码从来没有被调用过。同样,PDE/Build 任务所需的 ant 类路径条目也不会正确设置。

您需要安装了 PDE 的 Eclipse 来运行构建,但构建的目标可以与此分开。

build.properties下面找到的文件中,-Dbuilder=c:\pde-build\scripts您可以设置几个属性

  1. baseLocation这是您的目标日食的路径。
  2. buildDirectory这是构建实际发生的地方,源被提取到 plugins/ 和 features/ 子文件夹,但如果这里已经有二进制插件,那么它们也将成为目标的一部分。
  3. pluginPath这是一个路径列表(在 windows 上用 ';' 分隔,在 linux 上用 ':' 分隔),其中包含应被视为目标一部分的其他位置。这些位置可以是几件事:
    1. 带有 plugins/ 和 features/ 子文件夹的类 Eclipse 安装的根目录。这是提供 delta-pack 的好方法,而不仅仅是在 eclipse 安装之上解压缩它。
    2. 类似工作空间的文件夹的根目录,根据清单或 feature.xml 的存在,所有子文件夹都被视为插件或功能。
    3. 捆绑包或功能的根,或捆绑包的 jar。
  4. 如果您正在执行 p2 build ( p2.gathering = true),您还可以在 a 下提供 p2 存储库,${repoBaseLocation}该存储库将被转换并放置在您的目标下${transformedRepoLocation},并将成为您的目标的一部分,并且那里的 p2 元数据将在构建期间被重用。
于 2010-07-06T15:38:23.607 回答
0

经过一段时间的调查,我发现到目前为止我做错了什么。正如我上面提到的,定义目标平台并不像将 SDK 和插件复制到一个位置那么容易(就像在 Eclipse 开发的早期那样)。

现在的工作解决方案如下:将 eclipse SDK 复制到目标位置并运行此版本。在此安装必要的 PDE-Tools 以启用插件开发。之后,关闭 IDE 并将 delta pack + 相应的 svn 插件(我使用 sourceforge 中的 org.eclipse.pde.build.svn-1.0.1RC2)复制到目标平台,就完成了。现在我的自动 PDE 构建正在按预期运行。

现在唯一的小问题是:结果产品包含特定于 Eclipse 的菜单项,当我从我的 dev-eclipse 中运行它时,这些菜单项不存在。

有什么提示吗?

于 2010-07-06T09:41:58.787 回答
0

我刚刚发布了关于此类主题的问题的答案,可能对您有帮助:

插件产品 VS 功能产品

于 2010-07-06T09:44:26.287 回答