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

时间:2010-07-06 08:21:40

标签: 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 %*

我尝试从不同的部分创建目标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构建按预期工作! 这导致我发现目标日食的配置不正确,但目前我还不知道如何配置它!

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

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

此致 安德烈亚斯

3 个答案:

答案 0 :(得分: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文件中,您可以设置多个properties

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

答案 1 :(得分:0)

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

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

现在只有小问题如下:结果产品包含eclipse特定的菜单条目,当我从我的dev-eclipse中运行它时,它们不存在。

有关于此的任何提示吗?

答案 2 :(得分:0)

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

Plugin product VS Feature product