2012-12-05 18 views
2

我正在用Tycho構建基於功能的產品。構建過程和產品工作正常。現在我想通過我的p2更新站點更新功能,但這不起作用。由Tycho構建的產品中的Eclipse「已安裝軟件」功能層次結構

我注意到當我點擊幫助 - >關於 - >安裝細節時,我看到產品名稱爲根元素,我的所有功能都是兒童。所以我無法卸載任何功能和/或更新它們。只有根元素可以被卸載。我顯然不想這樣做,因爲這是整個產品。

當我在Eclipse IDE中調出安裝細節對話框時,我將所有已安裝的功能視爲根元素。所以我可以卸載或更新單個功能(例如EMF,Subversive,EGit)。

那麼爲什麼Tycho產品的這種不同呢?爲什麼我的功能不是安裝中的頂級元素?


我試圖激活複選框此功能需要爲我的功能,我想更新專用安裝,但這並沒有幫助。

+0

http://stackoverflow.com/questions/10352089/how-do-i-build-an-eclipse-rcp-app-so的重複:

實施例從一個*。產品文件片段-that-its-features-can-be-updated-automaticallya – oberlies

+0

是的,但根據下面的Tycho bug鏈接,現在可以用tycho分別安裝它們。謝謝! – Timo

+0

我從來沒有聽說過「此功能需要獨家安裝」選項。顯然,這個選項不再被支持,因爲它已經[用Eclipse Kepler刪除](http://git.eclipse.org/c/pde/eclipse.pde.ui.git/commit/?id=65309e26f344a8e9b4a9a210235b5ea81b429fe4).. 。 – oberlies

回答

2

實際上,並非Eclipse IDE中的所有功能都安裝在根級別上。還會有一個產品元素(例如「Eclipse SDK」),該產品包含無法獨立於產品進行更新或卸載的功能。

不過,您有一個有效的觀點:如何將特徵作爲根元素與Tycho一起安裝,以便它們可以獨立於產品進行卸載或更新?

這是可能的since Tycho 0.20.0:您可以在產品文件中指定是否要將功能作爲產品的子元素進行安裝,或者將功能安裝爲根元素。對於後者,您需要添加屬性installMode="root"

<features> 
    <feature id="product-child-element-feature"/> 
    <feature id="root-element-feature" installMode="root"/> 
</features>