建置配置
建置機制是由建置配置所驅動。
個別外掛程式、片段或特性的建置配置,是位於對應元素的 build.properties 檔案中。
當建立外掛程式專案時,PDE 專案建立精靈即會產生 build.properties 檔。
檔案包含資訊來說明如何將來源資料夾編譯成 JAR。
這個資訊可在 Manifest 編輯器的執行時期頁面上間接的更新。
也可以使用適當的編輯器直接修改。
PDE 提供一個具有表單和「程式碼」視圖的簡式編輯器來處理
build.properties。
檔案本身遵循 Java 內容格式。您需要提供許多索引鍵及其對應值。
多重值是以逗點當做定界符號來隔開的。
共用內容
- bin.includes - 列出會併入要建置之外掛程式的二進位版本的檔案;
- bin.excludes - 列出要從二進位建置排除的檔案;
- qualifier - 如果元素版本號碼是以 .qualifier 結尾,那麼它就是要取代 ".qualifier" 的值。
內容值為 context、<value> 或 none。
環境定義會根據系統日期來產生日期,或者在自動建置時,使用 CVS 標示。
值是實際的值。
None 會移除 ".qualifier"。如果省略該內容,則會使用環境定義。
- custom=true - 指出建置 Script 是以人工方式製作,而非自動產生。因此不會參考其他的值。
外掛程式專屬的內容
- source.<library> - 列出要編譯的來源資料夾(例如:source.xyz.jar=src/、src-ant/)。
如果程式庫指定在 plugin.xml 或 manifest.mf 中,該值應該與其符合;
- output.<library> - 列出用來接收編譯結果的輸出資料夾;
- source.<library> - 列出不應由編譯器複製在程式庫中的檔案;
- extra.<library> - 用來執行自動化建置的其他程式庫。
類別路徑可以是相對路徑,或是參照您開發環境的外掛程式和片段的平台 url(如 ../someplugin/xyz.jar, platform:/plugins/org.apache.ant/ant.jar)。
平台 URL 建議使用相對路徑;
- manifest.<library> - 指出會作為程式庫之 Manifest 的檔案。該檔案必須放置在作為 JAR 輸入的其中一個來源資料夾中。
- src.includes - 列出要併入在程式碼建置的檔案;
- src.excludes - 列出要從程式碼建置排除的檔案;
- jars.extra.classpath - (即將棄用)與 extra.<library> 的效果幾乎一樣,
只是這些項目適用於所有的程式庫;
- jars.compile.order - 可定義 JAR 編譯的順序(以應付多個程式庫的情況)。
針對以 "includes" 或 "excludes" 結尾的鍵而定義的值,是以 Ant "patterns" 表示。
標準格式提供預期的結果。例如,"*.jar" 表示最
上層目錄中的所有 JAR 檔。依預設,這些型樣並不完全。 如果假設您要說明所有 Java 檔案,則應該使用型樣 "**/*.java"。型樣 "**" 符合任何數量的目錄層次。
同樣地,如果要說明整個子樹狀結構,請使用 "xyz"。
特性專屬的內容
- root - 列出產品根目錄必須含有的檔案和資料夾。
下面是它所支援的不同的值:
- <folderName> - 所要複製之資料夾的相對路徑;
- file:<fileName> - 所要複製之檔案的相對路徑;
- absolute:<folderName> - 所要複製之資料夾的絕對路徑;
- absolute:file:<fileName> - 所要複製之檔案的絕對路徑;
- root.<config> - 列出針對指定配置所建置之產品根目錄必須含有的檔案和資料夾。
config 是由三個配置區段所組成,中間以點區隔;
- root.permissions.<permissionValue> - 列出要 chmod 到給定值的檔案和資料夾。資料夾的參照必須以 '/' 結尾;
- root.permissions.<config>.<permissionValue> - 針對特定的配置,列出要 chmod 到給定值的檔案和資料夾。資料夾的參照必須以 '/' 結尾;
- root.link - 針對特定配置成對列出(以逗點區隔)需要符號鏈結的檔案和資料夾。
第一個項目代表程式碼(UNIX 專有名詞中的目標),第二個項目則代表鏈結名稱。
- root.link.<config> - 需要針對特定配置而進行符號鏈結的檔案和資料夾清單,這些檔案和資料夾是成對列出,並且以逗點區隔。
第一個項目代表程式碼(UNIX 專有名詞中的目標),第二個項目則代表鏈結名稱。
- generate.feature@<featureId> - 指出程式碼特性 featureId 是被視為此內容值之特性的程式碼特性。
列在第一個逗點之後的值,代表從儲存庫提取的元素;
- generate.plugin@<pluginId> - 指出來源外掛程式 pluginId 會是指出作為這個內容值的來源外掛程式。
下面這個例子是從 org.eclipse.platform 特性的 build.properties 所擷取。
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*