[英]Why an Eclipse RCP product build can not find classes in org.eclipse.ui during headless build?
我有一个产品定义,其中包括我编写的一个功能和org.eclipse.feature。 当我从eclipse构建这个产品时,它成功完成。 但是,当我尝试使用Headless构建时,编译过程失败,因为它抱怨它无法找到org.eclipse.ui中包含的类。 例如,其中一个类是PlatformUI。 因此构建过程失败。
我已经检查过,org.eclipse.ui包含在org.eclipse.ui插件中。 我也尝试在我的自定义功能中明确包含此插件,但无济于事。
我也尝试删除其中一个有问题的插件,但是使用org.eclipse.ui的下一个插件失败了。 所以它似乎肯定是一些sowrt的类路径问题。
我使用Eclipse的3.3.2版尝试了这个无头构建。
org.eclipse.ui.PlatformUI
类位于org.eclipse.ui.workbench
插件中。
org.eclipse.ui.workbench是必需的,并由org.eclipse.ui重新导出。 “ org.eclipse.ui
”包是一个拆分包 。
如果您对此依赖项使用Import-Package,那么您只能连接到该程序包的某个提供程序。 如果您只需要ui.workbench中的类,那么您可以在Import-Package语句中添加一个属性:
Import-Package:org.eclipse.ui;ui.workbench=split
或者,您可以更改为Require-Bundle
你检查了build.properties
文件吗?
archivesFormat
属性允许在配置的基础上指定构建的输出格式(zip,tar和folder)。
该属性的格式为<configuration> - <format>
,其中configuration的值与configs属性中指定的值相同。
如果它在你尝试使用win32
安装进行构建时指定了linux,gtk,x86-folder
,它将无法正常工作。
不幸的是,Eclipse在GUI中导出产品和无头操作之间表现出不同的行为。 它们并不完全相同。
我过去发现的一个问题是,我需要为无头构建安装delta包才能工作,即使我正在使用我所针对的相同架构进行构建(win32)。 从GUI导出产品可以在没有delta包的情况下工作 - doh!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.