2011-09-20 86 views
3

在我的项目中,我使用PDE/Build在Hudson的远程服务器上构建我的RCP应用程序。 当前版本是基于Eclipse Galileo的软件包,它既适用于构建器应用程序,也适用于目标平台。如何使用Indigo设置Eclipse PDE/Build?

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

首先,解压缩数个拉链形成目标平台的旧方法不起作用。 (我使用了Platform Runtime Binary,Delta pack,PDE Runtime Binary和JDT Runtime Binary - 我提出的一套既可以用作构建器又可以用作目标平台)。

好的,有一个新的目标定义。 我该如何配置它,以便它符合我的伽利略设置? (当然,我不介意它是否更简单/更清洁)。

我试过如下:

  1. 加入Eclipse RCP的,Eclipse RCP的插件开发人员资源(源),PDE/API工具环境从download.eclipse.org/eclipse/updates/3.7
  2. 从download.eclipse.org/releases/indigo添加了Eclipse Java开发
  3. 从download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/download.php?dropFile=eclipse-3.7手动下载了delta pack -delta-pack.zip,解压缩并将生成的目录(作为目录)添加到目标定义。 顺便说一下,有没有Indigo delta pack的更新网站?
  4. 添加从Eclipse的轨道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> 

甚至

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

我收到以下错误:

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

+0

有点相关:https://bugs.eclipse.org/bugs/show_bug.cgi?id=266311 – vitaly

回答

1

结束了基于Maven的构建,针对“Eclipse for RCP和RAP开发人员”以及delta pack plus 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> 

我然后调用从Maven的Ant构建这样的:

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

我很高兴与成立了。

+0

将代码复制到https://gist.github.com/4529654 – vitaly