2012-11-02 36 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