[英]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.