为什么Eclipse RCP产品构建在无头构建期间无法在org.eclipse.ui中找到类?

时间:2009-08-17 08:18:41

标签: java eclipse build rcp

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

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

我也试过删除其中一个有问题的插件,但是使用org.eclipse.ui的下一个插件失败了。所以它似乎肯定是一些sowrt的类路径问题。

我使用Eclipse的3.3.2版尝试了这个无头构建。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您是否检查了build.properties文件?

特别是archivesFormat section

  

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

如果在尝试使用linux,gtk,x86-folder安装进行构建时指定win32,则无效。

答案 2 :(得分:0)

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

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