gpt4 book ai didi

eclipse-rcp - 使用 tycho 对产品进行实体化会导致缺少 .eclipseproduct 文件

转载 作者:行者123 更新时间:2023-12-04 02:59:29 29 4
gpt4 key购买 nike

我是使用 tycho-p2-director-plugin 的 Eclipse RCP 开发人员构建应用程序。

好消息是程序集已经生成,可以成功运行了。坏消息是我期望生成的工件之一(.eclipseproduct 文件)没有生成。

我试图弄清楚这个文件是怎么回事 - 不仅它不会通过 Tycho 生成,而且当我使用 Eclipse 产品导出向导时它也不会生成。 Based upon the documentation I found here ,我希望它会是。

此时我基本上想知道两件事,因为我找不到任何关于 .eclipseproduct 文件应该来自哪里/它应该来自哪里的任何好的文档生成。

如果它是在 tycho maven 生命周期期间生成的,那么我希望在我的目标文件夹下找到该文件——但事实并非如此。我还没有找到让 tycho 静态包含配置文件(config.ini 除外)的方法,否则我会使用该方法将静态 .eclipseproduct 文件附加到安装目录的根目录。

如果这是应该由安装程序生成的内容,那么使用 p2 的机制是什么,这样您就可以完成此操作?我考虑过将 .eclipseproduct 文件包含在我的主 P2 IU 中,但我不清楚该文件是否真的会被复制到根目录中以及具体如何完成。

如您所知,关于如何将此文件包含在我的构建中,我还没有找到太多方向。任何指向正确方向的指示都会有所帮助。如有必要,我还可以包括我的产品配置文件。

最佳答案

这应该是评论,因为它只是部分答案,但太长了。

似乎 .eclipseproduct 是构建时生成的文件,而不是 p2 在配置时创建的文件:

为了找到它,我使用 p2 director 提供了一份 Eclipse 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 目录中的各种缓存,我发现有一个 Installable Unit org.eclipse.platform_root 这是一个 zip包含许可和 .eclipseproduct 文件的文件...

: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%

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

...
<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变成的那个...

关于eclipse-rcp - 使用 tycho 对产品进行实体化会导致缺少 .eclipseproduct 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13199702/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com