OSGI Bundles

使用語義版本化

https://semver.org/中,可找到語義版本編號的商定最佳做法。

不要嵌入比OSGi bundles中嚴格需要的更多類和jar

應將常用程式庫分解為個別的組合。 這可讓您在整個套件間重複使用這些項目。 在OSGI套件中封裝​JAR​時,請務必檢查線上來源,以查看是否有人之前已這麼做。 尋找現有包裝函式的常見位置有:Apache Felix、Apache Sling、Apache Geronimo、Apache ServiceMix、Eclipse Bundle Recipes和SpringSource Enterprise Bundle Repository。

取決於所需的最低包版本

對於POM檔案中的編譯時間相關性,請始終依賴於暴露所需API的最低需要版本。 這可讓回溯相容性更高,並讓舊版的回溯修正更容易。

從OSGi bundles導出最少一組軟體包

一旦匯出套件,我們便已建立API供其他人依賴。 請務必盡可能少地導出,並確保要導出的是API。 採用私有方法/類並將其公開要比採用以前導出的內容和私有方法容易得多。

實施應始終放在單獨的​impl​包中。 依預設,maven-bundle-plugin​將匯出專案中名稱中未包含​impl​的任何項目。

始終明確定義每個導出的包的語義版本

這可讓您的API消費者與您一起發展。 在執行此操作時,請始終遵循語義版本修訂最佳實踐。 這可讓API的消費者知道新版本中預期的變更類型。

包含公開的metatype資訊

透過指定有意義的metatype資訊,可讓您在Felix主控台中更容易瞭解您的服務和元件。 SCR注釋和屬性的清單可在以下位置找到:https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html

本頁內容