特性和外掛程式的自訂建置步驟
特性或外掛程式在自己的建置中提供自訂步驟是 3.2 的新功能。
編譯後測試位元組碼、編製文件說明檔索引,或將額外檔案複製到軟體組之類的作業,都可以使用這些自訂步驟。
如果要使用自訂目標,特性或外掛程式必須在它的 build.properties 檔中定義 customBuildCallbacks 內容;
這個內容值是含有自訂標示之 xml 檔相對於特性/外掛程式根目錄的位置。
在 org.eclipse.pde.build/templates/plugins 和 org.eclipse.pde.build/templates/features 中,
分別提供了含有支援之自訂目標的範本,名稱都是 customBuildCallbacks.xml。
您可以將這些範本複製到您的特性/外掛程式中,再依照需要來加以修改。
自訂目標會以設定了 failonerror="false" 的 subant 作業來接受呼叫,因此,如果自訂 XML 檔未包含特定目標或發生錯誤,仍會繼續建置。
外掛程式
所產生用來建置外掛程式的 build.xml 含有若干執行特定作業的目標。
「PDE 建置」可讓外掛程式提供在特定作業之前和之後呼叫的自訂前置和後置目標。
除了可能已定義的任何 Ant 內容之外,每個自訂內容也可能會收到幾個特定內容。
下列目標支援自訂回呼:
- build.jars:build.jars 目標會進一步呼叫將針對這個軟體組來建置的每個編譯目標。
它支援在呼叫所有編譯目標之前和之後呼叫的 pre.build.jars 和 post.build.jars 目標。
前置和後置目標都檢附了 build.result.folder 內容,它是建置結果將複製到其中的資料夾。
- 編譯目標:build.xml 會定義每個所建置之 JAR 的編譯目標(如軟體組本身的 @dot,或 library.jar)。
每個編譯目標都支援 3 個自訂回呼:
- pre.<compilation target>:在編譯程式檔之前呼叫。
它檢附了下列內容:
- target.folder:編譯的類別檔將放在其中的資料夾
- source.folder<N>:含有要編譯之程式檔的來源資料夾。
(如 source.folder1、source.folder2 等)。
- <compilation target>.classpath:指向含有編譯將使用的類別路徑之 Ant 路徑結構的參照。
(如 @dot.classpath、library.jar.classpath)
- post.compile.<compilation target>:在編譯程式檔之後,在類別檔 Jar 或複製到建置結果資料夾之前,加以呼叫。
它檢附了與 pre.<compilation target> 目標相同的內容。
- post.<compilation target>:在編譯目標結束之時,在結果複製到建置結果資料夾之後,進行呼叫。
它檢附了下列內容:
- jar.Location:含有編譯結果的 Jar 或資料夾。
- <compilation target>.classpath:指向含有編譯所用的類別路徑之 Ant 路徑結構的參照。
- build.sources: 這個目標會建置每個編譯目標的程式檔 ZIP。
它支援 pre.build.sources 和 post.build.sources 目標。
這些目標都檢附了 build.result.folder 內容,它是程式檔的 ZIP 檔將複製到其中的資料夾。
- gather.bin.parts:這個目標會將建置結果(也就是併入軟體組的 JAR 和任何其他檔案)複製到最終的目的地目錄。
它也是在 Manifest 檔中取代了版本限定元的目標(請參閱 版本限定元)。
它支援 pre.gather.bin.parts 和 post.gather.bin.parts 目標。
以下是兩個提供給前置和後置目標的內容:
- build.result.folder:含有建置結果的資料夾
- target.folder:建置結果和軟體組內容複製到其中的目的地資料夾。
- gather.sources:這個目標會收集軟體組的程式檔 ZIP。
它支援 pre.gather.sources 和 post.gather.sources 目標。
前置和後置目標都檢附了 target.folder 內容,它是程式檔複製到其中的資料夾。
- gather.logs:這個目標會從建置中收集日誌檔。
它支援 pre.gather.logs 和 post.gather.logs。
前置和後置目標都檢附了 destination.temp.folder 內容,它是日誌檔複製到其中的暫時資料夾。
- clean:這個目標會執行清除動作,它支援 pre.clean 和 post.clean 目標。
前置和後置目標有下列內容:
- plugin.destination:最終軟體組要複製到其中的資料夾。
- build.result.folder:建置結果要複製到其中的資料夾。
- temp.folder:結果在複製到最終目的地之前,暫置在其中的暫時資料夾。
特性
針對特性而產生的 build.xml 只支援 gather.bin.parts 目標的自訂建置回呼。
這個目標會呼叫所有併入的特性和外掛程式的 gather.bin.parts 目標。
它支援 pre.gather.bin.parts 和 post.gather.bin.parts。
這兩個目標都檢附了下列內容:
- destination.temp.folder:外掛程式將複製到其中的目錄。
- feature.directory:這個特性的檔案將複製到其中的目錄。