How to set up Eclipse PDE/Build with Indigo?

半城伤御伤魂 提交于 2019-12-13 13:48:12

问题


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.

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

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).

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).

I tried the following:

  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>

or even

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

I get the following error:

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

The log contains the following:

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


回答1:


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>

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.



来源:https://stackoverflow.com/questions/7484729/how-to-set-up-eclipse-pde-build-with-indigo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!