2012-11-02 34 views
3

我是使用tycho-p2-director-plugin構建應用程序的Eclipse RCP開發人員。使用tycho來產品化導致缺少.eclipseproduct文件

好消息是程序集生成並可以成功運行。壞消息是,我期望生成的其中一個工件(.eclipseproduct文件)未生成。

我試圖弄清楚這個文件的處理是什麼 - 不僅僅是它不會通過Tycho生成,而且在使用Eclipse產品導出嚮導時也不會生成。 Based upon the documentation I found here,我希望它會。

我現在基本上想知道兩件事情,因爲我找不到任何有關.eclipseproduct文件應該來自何處的文檔或文檔應該生成的位置。

如果它是在tycho maven生命週期中生成的,那麼我會希望在我的目標文件夾下找到該文件 - 事實並非如此。我還沒有找到一種方法讓tycho靜態地包含配置文件(config.ini除外),否則我會使用該方法將靜態的.eclipseproduct文件附加到我的安裝目錄的根目錄。

如果這是應該由安裝程序生成的東西,使用p2的機制是什麼,以便您可以完成此任務?我已經考慮在我的主要P2 IU中包含.eclipseproduct文件,但我不清楚該文件是否真的會被複制到根目錄中,以及如何完成。

正如你所看到的,我一直無法找到很好的方向,以便如何讓這個文件包含在我的構建中。任何指向正確方向的指針都會有所幫助。如有必要,我還可以包含我的產品配置文件。

+0

你需要什麼的'.eclipseproduct'文件對於?鏈接的文檔沒有提到該文件。 – oberlies

+0

它確實 - 它在.exe的佈局中提到它。我們主要使用.eclipseproduct文件來確定應用程序的版本,這可以很容易地重新定位到config.ini文件中。我只是好奇,如果這是我應該做的,但在過去(甚至在Eclipse 4.2中打包一個)。 我大多隻是好奇,如果我們應該放棄.eclipseproduct(也許這是一個過時的神器?)或找出如何與我們的產品生成它。 – jonnywri

回答

2

這應該是一個評論,因爲它只是部分答案,但它太長了。

看來,.eclipseproduct是在構建時生成的文件,並在供應時用P2未創建:

爲了找到這個我調配使用Eclipse P2主任(4.2的副本,我用Installing a Complete product section of this page說明,將版本庫更新到4.2 site而不是使用3.6版本,並從使用Windows路徑更改爲更適合我的mac的版本)。

我注意到在文件上列出的.eclipseproduct文件似乎是解壓縮的神器,而不是產生一個因爲時間戳是不同的:

$ ls -lA 
total 304 
-rw-r--r-- 1 myself group  60 Sep 14 18:13 .eclipseproduct 
drwxr-xr-x 3 myself group  102 Nov 2 14:49 Eclipse.app 
-rw-r--r-- 1 myself group 112366 Nov 2 14:49 artifacts.xml 
... 

這讓我在./p2翻翻各種緩存目錄中,我發現有一個可安裝單位org.eclipse.platform_root這是一個包含授權和.eclipseproduct文件的zip文件...

:p2 $ zipinfo org.eclipse.equinox.p2.core/cache/binary/org.eclipse.platform_root_* 
Archive: org.eclipse.equinox.p2.core/cache/binary/org.eclipse.platform_root_4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO 38125 5 
-rw----  2.0 fat  0 bl defN 14-Sep-12 18:13 readme/ 
-rw----  2.0 fat 104173 bl defN 14-Sep-12 18:13 readme/readme_eclipse.html 
-rw----  2.0 fat  9051 bl defN 14-Sep-12 18:13 notice.html 
-rw----  2.0 fat  60 bl defN 14-Sep-12 18:13 .eclipseproduct 
-rw----  2.0 fat 16536 bl defN 14-Sep-12 18:13 epl-v10.html 
5 files, 129820 bytes uncompressed, 37501 bytes compressed: 71.1% 

我發現我P2在org.eclipse.equinox.p2.repository/cache/content*.jar文件中找到的文件的content.xmlü信息:

... 
<unit id='org.eclipse.platform_root' version='4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO'> 
    <provides size='1'> 
    <provided namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.platform_root' version='4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO'/> 
    </provides> 
    <artifacts size='1'> 
    <artifact classifier='binary' id='org.eclipse.platform_root' version='4.2.1.v20120814-120134-9JF7BHVGFyMveli1uX6aTH0q-eAap6PAgOP5mO'/> 
    </artifacts> 
    <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/> 
    <touchpointData size='1'> 
    <instructions size='2'> 
     <instruction key='install'> 
     unzip(source:@artifact, target:${installFolder}); 
     </instruction> 
     <instruction key='uninstall'> 
     cleanupzip(source:@artifact, target:${installFolder}); 
     </instruction> 
    </instructions> 
    </touchpointData> 
</unit> 
... 

簡而言之:當安裝這個IU(所要求的org.eclipse.platform.feature.group),P2只需解壓與.eclipseproduct到安裝文件夾中的神器。無需轉換。因此它必須在安裝之前生成。

編輯:我還發現它在Eclipse Git Repositories,但還沒有想出如果是變成了IU以上或沒有提到的一個...

+0

這看起來像它將主要工作。如果我們有每個產品的根IU,那麼這可以下載.eclipseproduct文件。 – jonnywri