使用Rational Application Developer實現增量代碼的構建

來源:互聯網
上載者:User

自動化構建流程分為多個環節,各環節互為前提條件。 本文所介紹的構建框架將構建過程中的每個環節封裝為 Ant 腳本的子任務,通過 Build 主任務來進行調度。 關於 Build 主任務以及構建腳本框架的創建已經在本系列的第 1 部分中進行了介紹,本文主要對代碼的構建流程進行詳細介紹。 讀者可以參考本文的代碼示例,完成代碼中剩餘部分 , 從而實現完整的構建框架。 在編寫構建腳本時,讀者可能需要自訂一些 Ant 標籤,這些自訂標籤的 JAVA 代碼可統一打包成 jar 檔,並存放于 <Build Script>/lib 目錄下,在 build.xml 檔中通過 <taskdef& gt; 標籤來聲明自訂標籤。 ( 本文需要讀者在具有一定的 Ant 腳本知識和 JAVA 編寫經驗的基礎上進行閱讀。 )




圖 1. 自動化構建流程





提取增量代碼

對於增量代碼的構建,第一步就是將新增加的代碼從代碼庫中抽取出來,目前市面上通用的代碼庫管理工具(SCM)有很多。 增量代碼的構建需要代碼管理工具有很好的代碼HTTP://www.aliyun.com/zixun/aggregation/9591.html">版本控制的功能,並且能夠提供命令列的運行方式, 這樣便於整個構建流程的自動化執行,當然這一步驟也可以由手工完成。 在構建框架中讀者需要將符合條件的代碼從代碼庫中抽取出來並存放在制定目錄下。

在本文所介紹的構建框架中,增量代碼存儲在 extract 目錄下。 為了便於區別不同版本的增量代碼,可使用時間戳或者 build 標籤進行標記,時間戳記或者 build 標籤可作為參數在啟動構建過程時以參數的形式輸入。 讀者需要在構建腳本中定義相應的變數,從而實現輸入變數的讀取。 例如清單 1 中 Ant 命令就是將 build label 作為參數輸入到 Ant 腳本中。




清單 1. 啟動 Ant 腳本時輸入參數


&lt;Build Scirpt&gt;/ant – buildfile build.xml – Dbuildlabel buildlabel

對於代碼抽取的條件,讀者可以配置在 build.properties 檔中 , 下面只給出偽代碼示例。 讀者可參考清單 2 完成該部分的腳本,並將其定義為子任務,並添加到主任務中去。




清單 2. 代碼抽取腳本


&lt;target="commone.extract_files" /&gt; &lt;!-- 1. 從 build.properties 檔中獲取增量代碼的版本資訊(該資訊主要適用于多版本開發的產品) 2. 從 build.propetties 檔中獲取增量代碼所關聯的最小單位資訊(如 defect 號 或者 task 號) 注:任何代碼檔導入到代碼庫時,都需要對應一個任務號或者是 defect 號。 這樣代碼管理工具可以對不同時 間導入代碼庫的檔進行區分並管理。 3. 從 build.properties 檔中讀取 build label 或者 從輸入的參數中讀取。 4. 判斷是否存在同樣 build lable 的目錄,如果存在則刪除。 如果不存在則新建。 5. 連接 SCM 管理工具,啟動命令列執行代碼抽取 - -&gt; &lt;/ target &gt;

代碼在代碼庫中的存放路徑可能各不相同。 在本文中需要讀者將抽取出來的代碼按照工程中的相對路徑存放。 關於代碼管理的具體內容不是本文介紹的重點,因此讀者需要諮詢產品的建構管理團隊完成該部分的內容,並整合到主任務中去。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.