Как настроить Eclipse PDE / Build с помощью Indigo? - PullRequest
3 голосов
/ 20 сентября 2011

В моем проекте я использую PDE / Build для создания своего приложения RCP на удаленном сервере в Хадсоне.Текущая версия представляет собой пакет, основанный на Eclipse Galileo, и он отлично работает как в качестве приложения для сборщика, так и в качестве целевой платформы.

Теперь я хочу обновить его до Indigo, и мне нужна некоторая помощь здесь.

Во-первых, старый метод распаковки количества zip-файлов для формирования целевой платформы не работает.(Я использовал Platform Runtime Binary, Delta pack, PDE Runtime Binary и JDT Runtime Binary - набор, который я придумал, который можно использовать как в качестве компоновщика, так и в качестве целевой платформы).

Хорошо, для этого есть новое определение цели. Как мне настроить его так, чтобы он соответствовал моим настройкам Galileo? (И, конечно, я не возражал бы, если бы он был проще / чище).

Я попробовал следующее:

  1. Добавлены Eclipse RCP, Ресурсы разработчика подключаемых модулей Eclipse RCP (для источника), Среда инструментов PDE / API по адресу download.eclipse.org/eclipse/updates/3.7
  2. Добавлена ​​Eclipse JavaРазработка с download.eclipse.org/releases/indigo
  3. Загруженный дельта-пакет вручную с download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/download.php?dropFile=eclipse-3.7-delta-pack.zip, распаковал его и добавил получившийся каталог (как Directory) в определение цели. Кстати, есть ли сайт обновлений для дельта-пакета Indigo?
  4. Добавлена ​​пара сторонних плагинов с сайта Eclipse Orbit p2: download.eclipse.org/tools/orbit/ downloads / drop / 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>

или даже

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

, я получаю следующую ошибку:

Произошла ошибка.См. Файл журнала \ configuration \ 1316517334675.log

Журнал содержит следующее:

! SESSION 2011-09-20 15: 15: 34.269 eclipse.buildId =неизвестно java.version = 1.7.0 java.vendor = константы BootLoader корпорации Oracle: 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.ecore4):.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:179) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.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)

1 Ответ

1 голос
/ 12 сентября 2012

Завершено сборкой на основе Maven для Eclipse для разработчиков RCP и RAP, плюс дельта-пакет плюс SWTBot.Оба были развернуты в моем хранилище 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>

Затем я вызываю ant build из Maven следующим образом:

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

Я доволен настройкой сейчас.

...