[Eclipse外掛程式開發指南]2.4 構建一個產品

來源:互聯網
上載者:User

 構建一個商業產品是為了在最終交付給使用者一個可安裝在使用者環境的形式。你可以以多種不同的方式去構建產品,包括手動或者是用Windows batch script、UNIX shell指令碼、Apache Ant script。在最終交付的時候就是一個單獨的壓縮檔或者是一個獨立可執行檔。為了這個目的,Favorites plug-in(譯者註:該書的一個樣本項目)將源碼作為一個單獨壓縮的zip檔案互動給使用者。

2.4.1 手工構建

手動構建涉及到運行一個Eclipse匯出(Export)嚮導頁,填寫一些欄位以及點擊結束(Finish)按鈕。選擇檔案(File)>匯出(Export)去運行想要的匯出(Export)嚮導頁。第一個嚮導頁頁面(圖2-14).選擇Deployable plug-ins and fragments,然後點擊下一步(Next)按鈕。

圖2-14 匯出(Export)嚮導頁1之匯出類型的選擇

 

在第二個嚮導頁的頁面(圖2-15),選擇將要被匯出的外掛程式,輸入zip檔案的名字以及選擇顯示的選項。另外,指定匯出操作的Ant指令碼在com.qualityeclipse.favorites項目中build-favorites.xml檔案,然後點擊結束(Finish)。

圖2-15 匯出(Export)嚮導頁面2之指定zip檔案內容

以建立的zip檔案包括一個單獨的JAR外掛程式包(在Eclipse3.1中一個外掛程式可以被部署成一個單獨的JAR檔案)

plugins/com.qualityeclipse.favorites_1.0.0.jar

而外掛程式JAR檔案包括了外掛程式和源碼就和匯出(Export)嚮導頁指定的一樣:

favorites.jar<br />favoritessrc.zip<br />plugin.xml<br />icons/sample.gif<br />META-INF/MANIFEST.MF

不幸的是,這個手動過程很容易出錯。手動構建成功需要一次或者兩次,但是要是在公司有不同的人需要構建產品呢?當產品規模在擴大將會發生什麼呢?一個商業產品需要一個可重複以及穩定的方法去構建它。

2.4.2 用Apache Ant去構建

一個Apache Ant指令碼提供了可靠的、靈活的以及可重複的構建商業外掛程式項目的過程,為了建立一個Ant指令碼,這之前我們要做多一點的工作,但是相比手動構建產品來說,隨著時間的推移,它將更少的出錯誤,在第19章將做介紹。

Eclipse能夠生產一個簡單的Ant指令碼。在之前部分用匯出(Export)嚮導頁產生的build-favorites.xml:

<?xml version="1.0" encoding="UTF-8"?><br /><project default="plugin_export" name="build"><br /><target name="plugin_export"><br /><pde.exportPlugins destination="/Build/QualityEclipse"<br />exportSource="true" exportType="zip"<br />filename="FavoritesPlugin.zip"<br />plugins="com.qualityeclipse.favorites" source="1.3"<br />target="1.2" useJARFormat="true" /><br /></target><br /></project>

之前簡單的指令碼工作的很好;但是不幸的是,pde.exportPlugins以及其它的pde.export*嘗試著非同步以及不能夠用前端完全無周邊的環境(在bugs.eclipse.org/bugs/show_bug.cgi?id=58413看Bugzilla登記的條目58413) 去建立它相比簡單的指令碼是很困難的。

 

如果你想要自己的構建指令碼去做更多的,就需要跟複雜的Ant指令碼。更多的Ant和構建指令碼,去看19章 構建一個產品。

<?xml version="1.0" encoding="UTF-8"?><br /><project default="plugin_export" name="build"><br /> <target name="plugin_export"></p><p> <!-- Define build directories --><br /> <property name="build.root"<br /> location="/Build/QualityEclipse" /><br /> <property name="build.temp"<br /> location="${build.root}/temp" /><br /> <property name="build.out"<br /> location="${build.root}/product" /></p><p> <!-- Create build directories --><br /> <delete dir="${build.temp}" /><br /> <mkdir dir="${build.temp}" /><br /> <mkdir dir="${build.out}" /></p><p> <!-- Read the MANIFEST.MF --><br /> <copy file="META-INF/MANIFEST.MF" todir="${build.temp}" /><br /> <replace file="${build.temp}/MANIFEST.MF"><br /> <replacefilter token=":=" value="=" /><br /> <replacefilter token=":" value="=" /><br /> <replacetoken>;</replacetoken><br /> <replacevalue><br /> </replacevalue><br /> </replace><br /> <property file="${build.temp}/MANIFEST.MF"/></p><p> <!-- Plugin locations --><br /> <property name="plugin.dir" value=<br /> "com.qualityeclipse.favorites_${Bundle-Version}" /><br /> <property name="plugin.files" location=<br /> "${build.temp}/files/${plugin.dir}" /><br /> <property name="plugin.<a name="iddle1543"></a>jar" location=<br /> "${build.temp}/jars/plugins/${plugin.dir}.jar" /><br /> <property name="product.zip" value=<br /> "${build.out}/Favorites_v${Bundle-Version}.zip" /></p><p> <!-- Assemble the files --><br /> <mkdir dir="${plugin.files}" /><br /> <jar destfile="${plugin.files}/favorites.jar"><br /> <fileset dir="bin" /><br /> </jar><br /> <jar destfile="${plugin.files}/favoritessrc.zip"><br /> <fileset dir="src" /><br /> </jar><br /> <copy todir="${plugin.files}"><br /> <fileset dir="." includes="META-INF/MANIFEST.MF" /><br /> <fileset dir="." includes="plugin.xml" /><br /> <fileset dir="." includes="icons/*.gif" /><br /> </copy><a name="d0e12516"></a><br /> <!-- Assemble plug-in jar --><br /> <mkdir dir="${build.temp}/jars/plugins" /><br /> <zip destfile="${plugin.jar}"><br /> <zipfileset dir="${plugin.files}"><br /> <include name="**/*.*" /><br /> </zipfileset><br /> </zip></p><p> <!-- Assemble the product zip --><br /> <zip destfile="${product.zip}"><br /> <fileset dir="${build.temp}/jars" /><br /> </zip></p><p> </target><br /></project>

在build-favorites.xml上點擊右鍵,選擇Run Ant…(圖2-16)去執行這個Ant指令碼。當Ant嚮導頁顯示的時候,點擊JRE標籤以及選擇Run in the same JRE as the workspace選項(圖2-17).點擊運行(Run)按鈕去構建產品。

圖2-16 build.xml快顯功能表

圖2-17 And嚮導頁

附語:如果你的Ant指令碼用的是Eclipse指定的Ant任務,比如pde.exportPlugins,為了讓你的Ant指令碼能夠執行你必須選擇Run in the same JRE as the workspace選項。

本文系eclipselight.org(日食之光)原創文章,轉載請註明出處。

固定連結:http://www.eclipselight.org/general/658/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.