我有一个产品定义,其中包括我编写的一个功能和org.eclipse.feature。当我从eclipse构建这个产品时,它成功完成。但是,当我尝试使用Headless构建时,编译过程失败,因为它抱怨它无法找到org.eclipse.ui中包含的类。例如,其中一个类是PlatformUI。因此构建过程失败。
我已经检查过,org.eclipse.ui包含在org.eclipse.ui插件中。我也尝试在我的自定义功能中明确包含此插件,但无济于事。
我也试过删除其中一个有问题的插件,但是使用org.eclipse.ui的下一个插件失败了。所以它似乎肯定是一些sowrt的类路径问题。
我使用Eclipse的3.3.2版尝试了这个无头构建。
答案 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
属性允许在配置的基础上指定构建的输出格式(zip,tar和文件夹)。
属性的格式为<configuration> - <format>
,其中配置的值与configs属性中指定的值相同。
如果在尝试使用linux,gtk,x86-folder
安装进行构建时指定win32
,则无效。
答案 2 :(得分:0)
不幸的是,Eclipse在GUI中导出产品和无头操作之间表现出不同的行为。它们并不完全相同。
我过去发现的一个问题是我需要为无头版本安装delta pack才能工作,即使我在我所针对的相同架构上进行构建(win32)。从GUI导出产品可以在没有delta pack的情况下工作 - doh!