目标平台PDE无头版本不工作 [英] Target Platform for PDE Headless build does not work

查看:197
本文介绍了目标平台PDE无头版本不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前我正在试图让我的无头PDE的构建工作,但我被困在一个地步,我不知道该怎么继续。
问题是如何定义的相关目标平台编译插件反对。
我有以下呼叫的build.bat(全部在同一行!):

  Java的罐子D:\\目标\\日食\\插件\\ org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
- 应用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-构建\\脚本%*

我试图创建从不同部位的目标Eclipse平台:在Eclipse SDK,RCP SDK,达美包,PDE-SDK中的所有组合,但他们没有行之有效

我得到了以下错误:

 构建失败
D:\\target\\eclipse\\plugins\\org.eclipse.pde.build_3.5.2.R35x_20100114\\scripts\\productBuild\\productBuild.xml:18:不能鳍
D $ {} eclipse.pdebuild.scripts /build.xml由D输入:\\目标\\日食\\插件\\ org.eclipse.pde.build_3.5.2.R35x_2010011
4 \\脚本\\ productBuild \\ productBuild.xml

其中变量$ {}​​ eclipse.pdebuild.scripts没有得到解决。我也试着给通过命令行这个参数,但后来我得到关于失踪的svn任务,这是因为这绝对是令人困惑的另一个错误正在与引用我的本地Eclipse安装。

当我从D替换路径:/目标/月食我的本地Eclipse安装工程按预期PDE构建!
这导致我到目标日食的配置不正确的点,但在那一刻,我不知道如何配置此!

我的目标是在我的本地站点没有引用我的地方第一次日食的自动化构建PDE,后来在这个建设过程中融入我们的运行CruiseControl的实例。

正如我已经看到了另一个问题有关定义目标月食我会很高兴,如果任何人都可以贡献有关问题的提示或事实。

问候,
安德烈亚斯


解决方案

在执行一具无头的构建,目标可以是从实际运行的构建本身日食分开。你有这里的问题是,你正在使用运行构建日食没有PDE /构建正确安装。

这就是为什么 $ {eclipse.pdebuild.scripts} 没有设置,因为PDE /构建未安装到该Eclipse实例,该org.eclipse.pde .build束没有解决,code,设置该属性从未被调用。同样,对于PDE /构建任务所需的蚁类路径条目就不会被正确设置两种。

您需要安装内部运行构建PDE Eclipse的,但对于构​​建目标可以是单独源于此。

在在 -Dbuilder = C找到了 build.properties 文件:\\ PDE-构建\\脚本即可设置多个<一个href=\"http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.pde.doc.user/reference/pde_builder_config.htm\"相对=nofollow>属性:


  1. baseLocation 这是一个Eclipse是你的目标的路径。

  2. buildDirectory 这是构建将实际发生的,来源是提取到的插件/和功能/子文件夹,但如果有已经在这里地处然后二进制插件那些成为目标的一部分。

  3. pluginPath 这是路径的列表(与分离;在Windows或'':在Linux'')包含其他位置,应该考虑作为目标的一部分。这些位置可以是几件事情:

    1. 的根蚀状安装带有插件/和功能/子文件夹。这是刚刚解压它的Eclipse之上安装提供增量包一个很好的方式来代替。结果

    2. 工作空间般的文件夹,所有子文件夹都被视为插件或功能取决于清单或的Feature.xml的presence的根。结果

    3. 捆绑或功能,或用于捆绑的jar的根目录。


  4. 如果你正在做一个P2版本(<一个href=\"http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_p2_builds.htm\"相对=nofollow> p2.gathering = TRUE )您也可以提供下 $ {} repoBaseLocation P2存储库将在 $进行改造,并放置{transformedRepoLocation} ,将成为你的目标的一部分,在P2元数据会得到<一个href=\"http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_p2_reusingmetadata.htm\"相对=nofollow>在生成过程中重复使用。

I am currently trying to get my headless pde-build working but I am stuck on a point where I do not know how to continue. The problem is how to define the related target platform to compile the plugins against. I have a build.bat with the following call (all in one line!):

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 %*

I tried to create the target eclipse platform from different parts: The eclipse SDK, RCP SDK, Delta Pack, PDE-SDK in all combinations but none of them worked well.

I got the following error:

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

where the variable ${eclipse.pdebuild.scripts} does not got resolved. I also tried to give this parameter via the command line but then I got another error regarding missing svn task which is absolutely confusing as this is working with my local eclipse installation referenced.

When I replace the path from d:/target/eclipse to my local eclipse installation the pde build works as expected! This leads my to the point that the configuration of the target eclipse is not correct but in the moment I have no idea how to configure this!

My goal is the automate the pde build first on my local site without referencing my local eclipse and later on integrate this building process into our running cruisecontrol instance.

As I saw already another question about defining the target eclipse I would be happy if anyone can contribute hints or facts regarding the problem.

Regards, Andreas

解决方案

When performing a headless build, the target can be separate from the eclipse that is actually running the build itself. The problem you had here is that the eclipse that you were using to run the build did not have PDE/Build properly installed.

This is why the ${eclipse.pdebuild.scripts} was not set, because PDE/Build was not installed into that eclipse instance, the org.eclipse.pde.build bundle was not resolved and the code that sets this property never got called. Similarly, the necessary ant classpath entries for PDE/Build tasks would not have been set up properly either.

You need the Eclipse with PDE installed inside to run the build, but the target for the build can be separate from this.

In the build.properties file found under -Dbuilder=c:\pde-build\scripts you can set several properties:

  1. baseLocation This is a path to an eclipse that is your target.
  2. buildDirectory This is where the build will actually take place, source is fetched to plugins/ and features/ subfolders, but if there are already binary plugins located here then those become part of the target as well.
  3. pluginPath This is a list of paths (separated with ';' on windows or ':' on linux) containing other locations that should be considered as part of your target. These locations can be several things:

    1. The root of an eclipse-like install with plugins/ and features/ subfolders. This is a good way to provide the delta-pack instead of just unzipping it on top of an eclipse install.
    2. The root of a workspace-like folder, where all subfolders are treated as plugins or features depending on the presence of a manifest or feature.xml.
    3. The root of a bundle or feature, or the jar for a bundle.

  4. If you are doing a p2 build (p2.gathering = true) you can also provide p2 repositories under a ${repoBaseLocation} which will be transformed and placed under ${transformedRepoLocation} and will become part of your target, and the p2 metadata there will get reused during the build.

这篇关于目标平台PDE无头版本不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆