PDE的目标平台无头构建不起作用

And*_*eas 6 eclipse build headless pde target-platform

我目前正试图让我的无头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 %*
Run Code Online (Sandbox Code Playgroud)

我试图从不同的部分创建目标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
Run Code Online (Sandbox Code Playgroud)

变量$ {eclipse.pdebuild.scripts}没有得到解决.我也尝试通过命令行给出这个参数,但后来我得到了另一个关于丢失svn任务的错误,这完全令人困惑,因为这与我引用的本地eclipse安装有关.

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

我的目标是首先在我的本地站点上自动化pde构建,而不引用我的本地eclipse,然后将此构建过程集成到我们正在运行的cruisecontrol实例中.

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

此致,安德烈亚斯

And*_*fer 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 这是构建实际发生的地方,源被提取到插件/和功能/子文件夹,但如果已经存在二进制插件,那么这些插件也成为目标的一部分.
  3. pluginPath这是一个路径列表(在Windows上用';'分隔,在linux上用':'分隔),其中包含应被视为目标一部分的其他位置.这些位置可以是几件事:
    1. 与插件/和功能/子文件夹一样的类似Eclipse的安装的根.这是提供delta-pack的好方法,而不是仅仅在eclipse安装之上解压缩它.
    2. 类似工作空间的文件夹的根,其中所有子文件夹都被视为插件或功能,具体取决于清单或feature.xml的存在.
    3. bundle或feature的根,或bundle的jar.
  4. 如果您正在进行p2 build(p2.gathering = true),您还可以在${repoBaseLocation}其下提供p2存储库,这些存储库将被转换并置于其下${transformedRepoLocation}并将成为您的目标的一部分,并且在构建期间将重新使用其中的p2元数据.


And*_*eas 0

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

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

现在唯一的小问题如下:结果产品包含 Eclipse 特定的菜单条目,当我从 dev-eclipse 内部运行它时,这些菜单条目不存在。

有什么提示吗?