首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

RCP 應用自動化部署實戰:基於 Ant 腳本的無頭構建完整指南

     編輯:Java 相關知識

背景:為什麼需要 Ant 自動化構建 RCP?

RCP(Rich Client Platform)基於 Eclipse 插件架構,能快速構建富客戶端應用。但生產環境構建往往在無圖形界面的構建服務器上進行,無法使用 Eclipse UI 導出向導。Ant 作為 Java 原生構建工具,配合 Eclipse PDE Build 無頭模式,完美解決自動化打包部署需求。

環境準備

  1. Ant:下載解壓,配置 ANT_HOME 與 PATH,驗證 ant -version。
  2. Eclipse SDK + Delta Pack:SDK 用於開發,Delta Pack 包含多平台打包所需插件,解壓至同一目錄。

創建示例 RCP 項目

  1. New → Plug-in Project,名稱 HelloRCP。
  2. 模板選擇 Hello RCP(含標準 RCP 結構)。
  3. 創建 .product 文件定義產品依賴、啟動參數、圖標等。

創建插件工程 選擇 Hello RCP 模板 項目文件結構

Ant 構建腳本設計

兩文件協作:

  • build.xml:定義構建流程 Target 依賴鏈。
  • build.properties:集中管理變量(路徑、版本、平台等),利於維護。

Target 依賴關係圖

build.xml 核心結構

<project name="HelloRCP" default="start">
  <property file="build.properties"/>

  <!-- 入口:調用外部腳本 → 部署 -->
  <target name="start">
    <antcall target="external"/>
    <antcall target="deploy"/>
  </target>

  <!-- 調用外部 Ant 腳本 -->
  <target name="external">
    <ant antfile="build.xml" dir="${external_build}"/>
  </target>

  <!-- 初始化:創建目錄、複製源碼到構建區 -->
  <target name="init">
    <mkdir dir="${buildDirectory}/plugins"/>
    <copy todir="${buildDirectory}/plugins">
      <fileset dir="../../"><include name="HelloRCP/**"/></fileset>
    </copy>
  </target>

  <!-- 核心:調用 PDE Build 導出產品 -->
  <target name="pde-build">
    <java classname="org.eclipse.equinox.launcher.Main" fork="true" failonerror="true">
      <arg value="-application"/><arg value="org.eclipse.ant.core.antRunner"/>
      <arg value="-buildfile"/>
      <arg value="${eclipseLocation}/plugins/org.eclipse.pde.build_${pdeBuildPluginVersion}/scripts/productBuild/productBuild.xml"/>
      <arg value="-Dtimestamp=${timestamp}"/>
      <classpath>
        <pathelement location="${eclipseLocation}/plugins/org.eclipse.equinox.launcher_${equinoxLauncherPluginVersion}.jar"/>
      </classpath>
    </java>
  </target>

  <target name="build" depends="clean, init, pde-build"/>
  <target name="deploy" depends="build"><!-- 配置文件合併等後處理 --></target>
  <target name="clean"><delete dir="${buildDirectory}"/></target>
</project>

關鍵 Target 說明

Target職責
start構建入口,類比 main()
external調用外部 Ant 腳本(注意相對路徑基準)
init準備構建目錄結構,滿足 PDE Build 期望
pde-build啟動 Equinox Launcher 運行 PDE Build 產品導出
build聚合 clean→init→pde-build
deploy後處理:合併配置、打包分發
clean清理臨時文件

build.properties 關鍵配置

pdeBuildPluginVersion=3.8.0.v20120523-1555
equinoxLauncherPluginVersion=1.3.0.v20120522-1813
eclipseLocation=C:/eclipse-rcp-juno-win32-x86_64/eclipse
buildDirectory=C:/DW
configs=win32, win32, x86_64
buildId=hellorcp
baseLocation=${eclipseLocation}
baseos=win32
basews=win32
basearch=x86_64
archivePrefix=HelloRCP
collectingFolder=${archivePrefix}
runPackager=true
allowBinaryCycles=true
flattenDependencies=true
JavaSE-1.6=${java.home}/lib/rt.jar
logExtension=.log
javacSource=1.6
javacTarget=1.6
external_build=C:/external

重點:

  • configs 指定目標平台(如 linux, gtk, x86_64 可多平台並行構建)。
  • pdeBuildPluginVersion/equinoxLauncherPluginVersion 必須與 Eclipse 安裝目錄 plugins/ 下實際 jar 版本一致。
  • buildDirectory 為構建輸出根目錄。

運行與驗證

方式一:Eclipse UI

右鍵 build.xml → Run As → Ant Build,Console 查看輸出。

方式二:命令行(推薦用於 CI/CD)

C:\workspace_rcp\HelloRCP\builds> ant

或封裝 Auto.bat:

call C:\Test\Ant\apache-ant-1.8.4\bin\ant.bat -file C:\workspace_rcp\HelloRCP\builds\build.xml

構建成功後,${buildDirectory} 下生成產品壓縮包,含可執行文件、插件、配置,可直接分發。

常見問題排查

現象原因與解決
找不到 application id.product 文件 Overview → Product Definition 配置 Application ID
缺少 tools.jar將 JDK lib/tools.jar 複製到報錯指向的 JRE 目錄
依賴包缺失.product → Dependencies 添加缺失插件
多平台構建修改 configs=win32,win32,x86 & linux,gtk,x86_64

總結

Ant + PDE Build 實現了 RCP 應用的完全無頭自動化構建:

  1. 開發階段享受 Eclipse RCP 高效開發體驗。
  2. 構建階段脫離圖形界面,支持 CI/CD 流水線集成。
  3. 統一屬性文件管理,多平台一鍵打包,顯著提升交付效率。

掌握此模式,可輕鬆擴展至插件自動化測試、簽名、發布等後續環節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved