在我的项目中,我使用 PDE/Build 在 Hudson 的远程服务器上构建我的 RCP 应用程序。
当前版本是基于 Eclipse Galileo 的包,它作为构建器应用程序和目标平台都可以正常工作。
现在我想将其升级到 Indigo,我需要一些帮助。
首先,解压多个 zip 来形成目标平台的旧方法不起作用。
(我使用了 Platform Runtime Binary、Delta pack、PDE Runtime Binary 和 JDT Runtime Binary - 我提出的一组既可以用作构建器也可以用作目标平台)。
好的,有新的目标定义。我该如何配置它,使其符合我的伽利略设置?(当然,如果它更简单/更干净,我不会介意)。
我尝试了以下方法:
- 添加了 Eclipse RCP、Eclipse RCP 插件开发人员资源(源代码)、PDE/API 工具环境(来自 download.eclipse.org/eclipse/updates/3.7)
- 从 download.eclipse.org/releases/indigo 添加了 Eclipse Java 开发
- 从 download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/download.php?dropFile=eclipse-3.7-delta-pack.zip 手动下载增量包,解压并添加生成的目录(作为目录)到目标定义。顺便问一下,有 Indigo delta pack 的更新站点吗?
- 添加了来自 Eclipse Orbit p2 站点的几个第三方插件:download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository
然后,我使用了定义的“设置为目标平台” - 我的项目在我的工作区中构建得很好 - 这很好!
然后我将平台导出到 .
现在,如果我尝试像这样执行我的构建:
java -jar <target-platform>\plugins\org.eclipse.equinox.launcher_1.2.0.v20110502.jar -application org.eclipse.ant.core.antRunner -buildfile <target-platform>/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/scripts/productBuild/productBuild.xml -Dbuilder=<pdebuild-folder>
or even
java -jar <target-platform>\plugins\org.eclipse.equinox.launcher_1.2.0.v20110502.jar
我收到以下错误:
发生了错误。查看日志文件\configuration\1316517334675.log
日志包含以下内容:
!会议 2011-09-20 15:15:34.269
eclipse.buildId=未知
java.version=1.7.0
java.vendor=Oracle 公司
BootLoader 常量:OS=win32、ARCH=x86、WS=win32、NL=en_US
!ENTRY org.eclipse.osgi 4 0 2011-09-20 15:15:35.175
!MESSAGE 应用程序错误
!堆栈1
java.lang.IllegalStateException:无法获取应用程序服务。确保 org.eclipse.core.runtime 包已解析并启动(请参阅 config.ini)。
在 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(来源未知)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(来源未知)
在 java.lang.reflect.Method.invoke(来源未知)
在 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
在 org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
在 org.eclipse.equinox.launcher.Main.run(Main.java:1410)
在 org.eclipse.equinox.launcher.Main.main(Main.java:1386)
最终针对“RCP 和 RAP 开发人员的 Eclipse”以及 delta pack 和 SWTBot 进行了基于 Maven 的构建。
两者都已部署到我的 Maven 存储库,并在构建期间解压(如果需要)。因此,我不再关心目标平台的大小。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<!-- Deploy target platform if required -->
<execution>
<id>unpack-target-platform</id>
<phase>initialize</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<markersDirectory>${target.platform.dir}</markersDirectory>
<artifactItems>
<artifactItem>
<groupId>org.eclipse</groupId>
<artifactId>rcp-target-platform</artifactId>
<version>3.7.2-win32-x86_64</version>
<type>zip</type>
<outputDirectory>${target.platform.dir.sdk}</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.eclipse</groupId>
<artifactId>rcp-target-platform-delta-pack</artifactId>
<version>3.7.2</version>
<type>zip</type>
<outputDirectory>${target.platform.dir.deltapack}</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>org.eclipse</groupId>
<artifactId>swtbot.eclipse</artifactId>
<version>2.0.5.20111003_1754-3676ac8-dev-e36</version>
<type>zip</type>
<outputDirectory>${target.platform.dir.swtbot}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<!-- Build system properties -->
<target.platform.dir>/rcp-target-platform-3.7.2</target.platform.dir>
<target.platform.dir.swtbot>${target.platform.dir}/swtbot</target.platform.dir.swtbot>
<target.platform.dir.swtbot.plugins>${target.platform.dir.swtbot}/eclipse/plugins</target.platform.dir.swtbot.plugins>
<target.platform.dir.sdk>${target.platform.dir}/sdk</target.platform.dir.sdk>
<target.platform.dir.sdk.plugins>${target.platform.dir.sdk}/eclipse/plugins</target.platform.dir.sdk.plugins>
<target.platform.dir.deltapack>${target.platform.dir}/deltapack</target.platform.dir.deltapack>
<target.platform.dir.deltapack.plugins>${target.platform.dir.deltapack}/eclipse/plugins</target.platform.dir.deltapack.plugins>
<pdebuild.launcherVersion>1.2.0.v20110502</pdebuild.launcherVersion>
<pdebuild.plugin.version>3.7.0.v20111116-2009</pdebuild.plugin.version>
<pdebuild.antDelegateBuildfile>${pdebuild.configDirectory}/pdebuild-ant-from-mvn.xml</pdebuild.antDelegateBuildfile>
<pdebuild.configDirectory>${basedir}/pdebuild</pdebuild.configDirectory>
<pdebuild.buildDirectory>${project.build.directory}/${pdebuild.directory}</pdebuild.buildDirectory>
<pdebuild.directory>pde-build</pdebuild.directory>
</properties>
然后我从 Maven 中调用 ant build,如下所示:
<!-- Delegate execution to PDE/Build via ant -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<target>
<ant antfile="${pdebuild.antDelegateBuildfile}">
<property name="equinoxLauncherPluginVersion" value="${pdebuild.launcherVersion}" />
<property name="pdeBuildPluginVersion" value="${pdebuild.plugin.version}" />
<property name="projectsDirectory" value="${basedir}" />
<property name="baseLocation" value="${target.platform.dir}" />
<property name="buildDirectory" value="${pdebuild.buildDirectory}" />
<property name="builder" value="${pdebuild.configDirectory}" />
<property name="product" value="${gui.product}"/>
<property name="runPackager" value="${pdebuild.runPackager}"/>
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
我对现在的设置很满意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)