gpt4 book ai didi

eclipse - 如何构建 Eclipse RCP 应用程序以便其功能可以自动更新?

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

我正在构建一个 RCP 应用程序,它将由多个功能组成。

我的 RCP 应用程序配置为每次启动时检查更新。我当前的问题是,我需要在构建时“安装”我的功能之一,以便在自动检查更新期间它会得到更新,而无需强制用户手动安装它。我需要此功能独立于系统中的其他功能进行更新。

所以,回顾一下,我只是在寻找一种很好的自动化方法来将功能安装在 RCP 应用程序中,使其独立于其他功能进行更新,并且不需要 RCP 应用程序的用户手动安装。

最佳答案

经过长时间的搜索,我找到了答案。这有点杂乱,但此时我愿意做任何事情。我的解决方案取决于我构建的 RCP 应用程序包含 p2 应用程序 org.eclipse.equinox.p2.director。我想如果您的 RCP 应用程序不包含此应用程序,您可以引用另一个 Eclipse 安装来启动 Director。我这样做只是为了避免在我的构建机器上出现 Eclipse 实例。

我使用了 p2-dev 邮件列表,Paul Webster 回答了我的问题。 (谢谢保罗)

他建议使用 ant 启动 p2director 应用程序,将 IU 安装到我构建的 RCP 应用程序中。

这是他在 p2-dev 邮件列表上的回答 http://dev.eclipse.org/mhonarc/lists/p2-dev/msg04735.html

这是我想出的 Ant 目标。

<target name="install_IU">
<path id="launcher.paths">
<fileset
dir="${app.dir}"
includes="plugins/org.eclipse.equinox.launcher_*" />
</path>
<property
name="launcherPath"
refid="launcher.paths" />
<echo>-installIU ${iu.id} </echo>
<java
jar="${launcherPath}"
failonerror="false"
dir="${app.dir}"
timeout="900000"
fork="true"
output="${basedir}/director.log"
resultproperty="directorcode">
<arg line="-application org.eclipse.equinox.p2.director" />
<arg line="-noSplash" />
<arg line="-installIUs ${iu.id}" />
<arg line="-repository ${iu.repo}" />
<arg line="-destination ${app.dir}" />
<arg line="-bundlepool ${app.dir}" />
</java>

<zip destfile="${app.zip}"
basedir="${app.dir}"/>
</target>

我将其放入通过 Tycho 生成 Eclipse RCP 应用程序的同一项目中的 ant 文件中。第谷在名为“target”的目录中生成我的构建工件,因此上面的 ant 目标的参数如下所示...

<target name="modify_x86">
<antcall target="install_IU">
<param name="iu.id" value="com.mydomain.the.feature.i.want.to.install.feature.feature.group"/>
<param name="iu.repo" value="http://mydomain.com/thep2repository/where/i/deploy/the/feature/to/install"/>
<param name="app.dir" value="${basedir}/target/products/com.mydomain.myRCPapplication/win32/win32/x86"/>
<param name="app.zip" value="${basedir}/target/products/com.mydomain.myRCPapplication-win32.win32.x86.zip"/>
</antcall>
</target>

对于我的 RCP 应用程序构建的每个平台,我还有更多这样的目标。

希望这有帮助。

更新:2014 年 5 月 8 日。Tobias 引起了我的注意,我应该将接受的答案从这个答案更改为具有添加到 Tycho 0.20.0 的新功能的答案,该功能可以在很大程度上实现此行为。更加简约时尚。因此,新接受的答案是现在这个问题的正确解决方案。

关于eclipse - 如何构建 Eclipse RCP 应用程序以便其功能可以自动更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352089/

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