【问题标题】:Why an Eclipse RCP product build can not find classes in org.eclipse.ui during headless build?为什么 Eclipse RCP 产品构建在无头构建期间无法在 org.eclipse.ui 中找到类?
【发布时间】:2010-11-20 04:19:32
【问题描述】:

我有一个产品定义,其中包括我编写的一项功能和 org.eclipse.feature。当我从 eclipse 构建这个产品时,它成功完成。但是,当我尝试使用 Headless 构建时,编译过程失败,因为它抱怨找不到 org.eclipse.ui 中包含的类。例如,这些类之一是 PlatformUI。构建过程因此失败。

我已经检查过,org.eclipse.ui 包含在 org.eclipse.ui 插件中。我也尝试将此插件明确包含在我的自定义功能中,但无济于事。

我也尝试删除其中一个有问题的插件,但下一个使用 org.eclipse.ui 的插件失败了。因此,这似乎绝对是某个类路径的问题。

我已经使用 Eclipse 3.3.2 版本尝试过这种无头构建。

【问题讨论】:

  • 您是说无头构建失败还是无头构建创建的产品不起作用?这是具有不同故障场景的 2 个不同事物。

标签: java eclipse build rcp


【解决方案1】:

org.eclipse.ui.PlatformUI 类在 org.eclipse.ui.workbench 插件中。

org.eclipse.ui.workbench 是必需的,并由 org.eclipse.ui 重新导出。 “org.eclipse.ui”包是split package

如果您对这种依赖项使用 Import-Package,那么您只会连接到包的提供者之一。如果您只需要 ui.workbench 中的类,则可以在 Import-Package 语句中添加一个属性:

Import-Package:org.eclipse.ui;ui.workbench=split

或者,你也可以改成Require-Bundle

【讨论】:

  • 我发现了问题,它与您提到的有关。我有一个伪造的 org.eclipse.ui.workbench 插件,它对构建造成了严重破坏。
【解决方案2】:

您检查了您的build.properties 文件吗?

特别是archivesFormat section

archivesFormat 属性允许基于配置指定构建的输出格式(zip、tar 和文件夹)。
该属性的格式为<configuration> - <format>,其中配置的值与configs 属性中指定的值相同。

如果它在您尝试使用win32 安装进行构建时指定了linux,gtk,x86-folder,它将不起作用。

【讨论】:

  • 嗨!我检查了这个文件。我实际上没有进入。我已经添加了 win32 条目,但我的问题还是一样。
【解决方案3】:

不幸的是,Eclipse 在 GUI 中导出产品和无头执行产品之间表现出不同的行为。它们并不完全相同。

我过去发现的一个问题是,我需要安装 delta pack 才能使无头构建工作,即使我是在我所针对的相同架构 (win32) 上进行构建。从 GUI 导出产品可以在没有 delta 包的情况下工作 - 哦!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-12
    • 2019-01-14
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多