通过tycho maven将JRE与基于RCP插件的应用程序捆绑在一起

时间:2018-04-03 15:53:25

标签: java eclipse maven eclipse-rcp tycho

我有基于插件模型的RCP应用程序。我想把JRE放到由Maven + Tycho创建的最终工件上。我试着遵循这些推荐

including-a-jre-in-a-tycho-build

bundle-jre-along-with-your-product

我创建了另一个功能项目,其中将所需的JRE放在功能项目的根目录中。在我的情况下这jre / win64。我为产品定义添加了功能。但我不明白如何通知maven进程负责在我的功能项目中创建有关JRE的产品分发 我的构建属性文件是

bin.includes=feature.xml
root.win32.win32.x86_64= ./jre/win64

我还创建了新的pom.xml并添加到父pom.xml 我使用tycho 1.1.0和Eclipse Neon.3作为平台

1 个答案:

答案 0 :(得分:1)

对于我的开源Eclipse RCP e4应用程序,我正在捆绑由Azul提供的OpenJDK二进制文件。查看构建Eclipse功能的Github project

简而言之,它使用了上述博文Including a JRE in a Tycho build中概述的想法。使用根文件的优点是可以通过P2更轻松地更新JRE(在根文件的情况下,Windows上运行的JRE可能会阻止使用更新的JRE替换)。

Tycho中的that repository版本确实:

  • Zulu
  • 下载JDK版本
  • 使用相应的setJvm p2 Touchpoint Instructions
  • 创建捆绑包
  • 使用所有JRE捆绑包创建一个功能,并在其他版本中使用存储库
  • 创建具有自我更新功能的RCP e4应用程序以测试打包的JRE

在RCP产品中使用此功能不仅仅是将功能添加到产品定义中:

<?xml version="1.0"?>
<?pde version="3.5"?>

<product name="Test Product">
    <features>
        <feature id="test.feature"/>
        <feature id="org.eclipse.e4.rcp"/>

        <feature id="name.abuchen.zulu.jre.feature"/>

    </features>
</product>