如何使用Indigo设置Eclipse PDE / Build? [英] How to set up Eclipse PDE/Build with Indigo?

查看:122
本文介绍了如何使用Indigo设置Eclipse PDE / Build?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的项目中,我使用PDE / Build在Hudson的远程服务器上构建RCP应用程序。
当前版本是基于Eclipse Galileo的软件包,它既可以用作构建器应用程序,也可以作为目标平台使用。

In my project I use PDE/Build to build my RCP application on a remote server in Hudson. The current version is a package based on Eclipse Galileo and it works fine both as a builder application and as a target platform.

现在我想将其升级到Indigo,在这里需要一些帮助。

Now I want to upgrade it to Indigo and I need some help here.

首先,旧方法数量的拉链解压缩以形成目标平台不起作用。
(我使用了平台运行时二进制文件,Delta包,PDE运行时二进制文件和JDT运行时二进制文件-我想出的一套既可以用作构建器又可以用作目标平台)。

First, the old method of unpacking number of zips to form a target platform does not work. (I used Platform Runtime Binary, Delta pack, PDE Runtime Binary and JDT Runtime Binary - a set that I came up with that can be used both as a builder and as a target platform).

好的,为此有了新的目标定义。
我将如何配置它使其与我的Galileo设置相对应?
(当然,我不介意它是否更简单/更干净)。

Ok, there is new target definition for that. How would I configure it so that it corresponds to my Galileo set up? (And of course I wouldn't mind if it was simpler/cleaner).

我尝试了以下操作:


  1. 添加了Eclipse RCP,Eclipse RCP插件开发人员资源(针对源代码),来自download.eclipse.org/eclipse/updates/3.7
  2. 的PDE / API工具环境
  3. 从download.eclipse.org/releases/indigo
  4. 添加了Eclipse Java开发>
  5. 从download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/download.php?dropFile=eclipse-3.7-delta-pack.zip中手动下载了增量包,将其解压缩并将结果目录(作为目录)添加到目标定义。 顺便说一下,是否有Indigo delta pack的更新站点?

  6. 从Eclipse Orbit p2站点添加了几个第三方插件:download.eclipse .org / tools / orbit / downloads / drops / R20110523182458 / repository

  1. Added Eclipse RCP, Eclipse RCP Plug-in Developer Resources (for source), PDE/API Tools Environment from download.eclipse.org/eclipse/updates/3.7
  2. Added Eclipse Java Development from download.eclipse.org/releases/indigo
  3. Downloaded delta pack manually from download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/download.php?dropFile=eclipse-3.7-delta-pack.zip, unpacked it and added the resulting directory (as Directory) to target definition. By the way, is there an update site for Indigo delta pack?
  4. Added a couple of third party plug-ins from Eclipse Orbit p2 site: download.eclipse.org/tools/orbit/downloads/drops/R20110523182458/repository

然后我使用定义的设置为目标平台-和我的项目在我的工作区中构建良好-很好!
然后将平台导出到。
现在,如果我尝试执行这样的构建:

I then used the definition's 'Set as Target Platform' - and my project builds fine in my workspace - that's nice! Then I exported the platform to . Now, if I try to execute my build like this:

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>

甚至

java -jar <target-platform>\plugins\org.eclipse.equinox.launcher_1.2.0.v20110502.jar

我收到以下错误:


发生了错误。请参阅日志文件\configuration\1316517334675.log

An error has occurred. See the log file \configuration\1316517334675.log

该日志包含以下内容:


!SESSION 2011-09-20 15:15:34.269
eclipse.buildId = unknown
java.version = 1.7.0
java .vendor = Oracle Corporation
BootLoader常数:OS = win32,ARCH = x86,WS = win32,NL = en_US

!SESSION 2011-09-20 15:15:34.269 eclipse.buildId=unknown java.version=1.7.0 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US

!ENTRY org.eclipse.osgi 4 0 2011-09-20 15:15:35.175
!MESSAGE应用程序错误
!STACK 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处。在org。上的reflect.NativeMethodAccessorImpl.invoke(未知来源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)
在java.lang.reflect.Method.invoke(未知来源)
在组织。 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)

!ENTRY org.eclipse.osgi 4 0 2011-09-20 15:15:35.175 !MESSAGE Application error !STACK 1 java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini). at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) at org.eclipse.equinox.launcher.Main.main(Main.java:1386)


推荐答案

最终针对 RCP和RAP开发人员的Eclipse以及增量包完成了基于Maven的构建加上SWTBot。
两者都已部署到我的Maven存储库中,并在构建期间解压缩(如果需要)。因此,我不再关心目标平台的大小。

Ended up with Maven based build against "Eclipse for RCP and RAP Developers" plus delta pack plus SWTBot. Both were deployed to my Maven repository and are unpacked during the build (if required). Therefore, I no longer care about the size of the target platform.

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

I then call ant build from Maven like this:

        <!-- 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>

我对现在的设置感到满意。

I am happy with the set up now.

这篇关于如何使用Indigo设置Eclipse PDE / Build?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆