Tycho - Eclipse RCP 产品(重新)品牌化问题:显示错误的启动画面
Tycho - Eclipse RCP Product (re)branding issue : wrong splash screen shown
目标:
我想制作一个基于现有 Eclipse.org 特性和我自己的附加特性的 Eclipse RCP 产品特性。
简介:
为了重新开始,我按照 Lars Vogel 的 Eclipse Tycho tutorial 进行了第 9 步。
我只做了一些调整:
- 我正在使用最新版本的 Eclips RCP 平台 (Oxygen)
- 我使用的是最新版本的 Eclipse Tycho (1.0.0)
- 我必须在产品配置中设置插件部分的自动启动模式(c.f。com.vogella.tycho.rcp.product 文件)
- 我已经添加了这两个品牌文件
- "splash.bmp" 图像在 com.vogella.tycho.rcp 插件的根文件夹中,此外我已经将 splash.bmp 添加到 build.properties 文件定义的二进制构建中
- "icons/product.ico" 图标到 com.vogella.tycho.product 项目
- 我终于完成了产品的定义,由 com.vogella.tycho.rcp.product 文件定义,带有图标和初始图像的位置。
...我使用 Maven 3 构建产品,从根项目文件夹执行以下命令:
mvn clean verify
最后我做了一个冒烟测试:
run-product.bat
结果:如期启动,图标出现在任务栏中,右启动画面出现。好的!
问题:
现在,我将 Eclipse.org 中的一个特征添加到生产定义中:org.eclipse.epp.package.java.feature
然后我重做构建和冒烟测试...不幸的是,显示的是 Eclipse "Oxygen" 初始屏幕...
我怎样才能阻止 Eclipse "Oxygen" 闪屏出现,并用我的闪屏代替?
产品定义文件:
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="com.vogella.tycho.rcp" uid="foo" id="com.vogella.tycho.rcp.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default"></configIni>
<launcherArgs>
<programArgs>-clearPersistedState</programArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
</launcherArgs>
<windowImages/>
<splash location="com.vogella.tycho.rcp" />
<launcher name="foo">
<win useIco="true">
<ico path="icons/product.ico"/>
<bmp/>
</win>
</launcher>
<vm>
</vm>
<plugins>
</plugins>
<features>
<feature id="org.eclipse.e4.rcp" installMode="root"/>
<feature id="com.vogella.tycho.feature" version="1.0.0.qualifier"/>
<feature id="org.eclipse.emf.common"/>
<feature id="org.eclipse.emf.ecore"/>
<feature id="org.eclipse.epp.package.java.feature"/>
</features>
<configurations>
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="3" />
</configurations>
</product>
附件:
经过数小时的 Maven 构建调试后,我发现功能 "org.eclipse.epp.package.java.feature" 似乎包含一个带有接触点的配置,用于修改 config.ini 并因此更改 osgi.splashPath 的值, eclipse.product 和 eclipse.application。
所以我决定更改产品定义文件,并使用 "org.eclipse.jdt" 功能(而不是 "org.eclipse.epp.package.java.feature")并将其依赖项添加到产品定义文件中。
现在,新图标和新初始屏幕都按需要出现了。
这是最终的产品定义文件:
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="com.vogella.tycho.rcp" uid="foo" id="com.hipperos.workbench.rcp.product" application="org.eclipse.ui.ide.workbench" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default">
</configIni>
<launcherArgs>
<programArgs>-clearPersistedState
</programArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
</vmArgsMac>
</launcherArgs>
<windowImages/>
<splash
location="com.vogella.tycho.rcp" />
<launcher name="foo">
<win useIco="true">
<ico path="icons/product.ico"/>
<bmp/>
</win>
</launcher>
<vm>
</vm>
<plugins>
</plugins>
<features>
<feature id="org.eclipse.e4.rcp" installMode="root"/>
<feature id="com.vogella.tycho.feature" version="1.0.0.qualifier"/>
<feature id="org.eclipse.emf.common"/>
<feature id="org.eclipse.emf.ecore"/>
<feature id="org.eclipse.rcp" version="4.7.0.v20170308-2000"/>
<feature id="org.eclipse.jdt" version="3.13.0.v20170308-2105"/>
<feature id="org.eclipse.platform" version="4.7.0.v20170308-2000"/>
<feature id="org.eclipse.equinox.p2.core.feature" version="1.4.0.v20170208-2010"/>
<feature id="org.eclipse.ecf.core.feature" version="1.3.0.v20170110-1317"/>
<feature id="org.eclipse.ecf.filetransfer.feature" version="3.13.5.v20170216-0456"/>
<feature id="org.eclipse.help" version="2.2.100.v20170308-2000"/>
</features>
<configurations>
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="3" />
</configurations>
</product>
目标:
我想制作一个基于现有 Eclipse.org 特性和我自己的附加特性的 Eclipse RCP 产品特性。
简介:
为了重新开始,我按照 Lars Vogel 的 Eclipse Tycho tutorial 进行了第 9 步。
我只做了一些调整:
- 我正在使用最新版本的 Eclips RCP 平台 (Oxygen)
- 我使用的是最新版本的 Eclipse Tycho (1.0.0)
- 我必须在产品配置中设置插件部分的自动启动模式(c.f。com.vogella.tycho.rcp.product 文件)
- 我已经添加了这两个品牌文件
- "splash.bmp" 图像在 com.vogella.tycho.rcp 插件的根文件夹中,此外我已经将 splash.bmp 添加到 build.properties 文件定义的二进制构建中
- "icons/product.ico" 图标到 com.vogella.tycho.product 项目
- 我终于完成了产品的定义,由 com.vogella.tycho.rcp.product 文件定义,带有图标和初始图像的位置。
...我使用 Maven 3 构建产品,从根项目文件夹执行以下命令:
mvn clean verify
最后我做了一个冒烟测试:
run-product.bat
结果:如期启动,图标出现在任务栏中,右启动画面出现。好的!
问题:
现在,我将 Eclipse.org 中的一个特征添加到生产定义中:org.eclipse.epp.package.java.feature
然后我重做构建和冒烟测试...不幸的是,显示的是 Eclipse "Oxygen" 初始屏幕...
我怎样才能阻止 Eclipse "Oxygen" 闪屏出现,并用我的闪屏代替?
产品定义文件:
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="com.vogella.tycho.rcp" uid="foo" id="com.vogella.tycho.rcp.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default"></configIni>
<launcherArgs>
<programArgs>-clearPersistedState</programArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
</launcherArgs>
<windowImages/>
<splash location="com.vogella.tycho.rcp" />
<launcher name="foo">
<win useIco="true">
<ico path="icons/product.ico"/>
<bmp/>
</win>
</launcher>
<vm>
</vm>
<plugins>
</plugins>
<features>
<feature id="org.eclipse.e4.rcp" installMode="root"/>
<feature id="com.vogella.tycho.feature" version="1.0.0.qualifier"/>
<feature id="org.eclipse.emf.common"/>
<feature id="org.eclipse.emf.ecore"/>
<feature id="org.eclipse.epp.package.java.feature"/>
</features>
<configurations>
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="3" />
</configurations>
</product>
附件:
经过数小时的 Maven 构建调试后,我发现功能 "org.eclipse.epp.package.java.feature" 似乎包含一个带有接触点的配置,用于修改 config.ini 并因此更改 osgi.splashPath 的值, eclipse.product 和 eclipse.application。
所以我决定更改产品定义文件,并使用 "org.eclipse.jdt" 功能(而不是 "org.eclipse.epp.package.java.feature")并将其依赖项添加到产品定义文件中。
现在,新图标和新初始屏幕都按需要出现了。
这是最终的产品定义文件:
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="com.vogella.tycho.rcp" uid="foo" id="com.hipperos.workbench.rcp.product" application="org.eclipse.ui.ide.workbench" version="1.0.0.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default">
</configIni>
<launcherArgs>
<programArgs>-clearPersistedState
</programArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
</vmArgsMac>
</launcherArgs>
<windowImages/>
<splash
location="com.vogella.tycho.rcp" />
<launcher name="foo">
<win useIco="true">
<ico path="icons/product.ico"/>
<bmp/>
</win>
</launcher>
<vm>
</vm>
<plugins>
</plugins>
<features>
<feature id="org.eclipse.e4.rcp" installMode="root"/>
<feature id="com.vogella.tycho.feature" version="1.0.0.qualifier"/>
<feature id="org.eclipse.emf.common"/>
<feature id="org.eclipse.emf.ecore"/>
<feature id="org.eclipse.rcp" version="4.7.0.v20170308-2000"/>
<feature id="org.eclipse.jdt" version="3.13.0.v20170308-2105"/>
<feature id="org.eclipse.platform" version="4.7.0.v20170308-2000"/>
<feature id="org.eclipse.equinox.p2.core.feature" version="1.4.0.v20170208-2010"/>
<feature id="org.eclipse.ecf.core.feature" version="1.3.0.v20170110-1317"/>
<feature id="org.eclipse.ecf.filetransfer.feature" version="3.13.5.v20170216-0456"/>
<feature id="org.eclipse.help" version="2.2.100.v20170308-2000"/>
</features>
<configurations>
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="3" />
</configurations>
</product>