OSGi組合 osgi-bundles
使用語意版本設定 use-semantic-versioning
您可以在https://semver.org/找到語意版本編號的公認最佳實務。
請勿內嵌超過OSGi套件組合嚴格需要的類別和jar do-not-embed-more-classes-and-jars-than-strictly-needed-in-osgi-bundles
通用程式庫應分解為單獨的套件組合。 這可讓您在套件組合中重複使用它們。 在OSGi套件組合中包裝 JAR 時,請務必檢查線上來源,以檢視是否有人之前已執行此動作。 尋找現有套裝包裝函式的一些常見位置包括:Apache Felix、Apache Sling、Apache Geronimo、Apache ServiceMix、Eclipse套裝配方和SpringSource企業套裝存放庫。
取決於所需的最低套件組合版本 depend-on-the-lowest-needed-bundle-versions
針對POM檔案中的編譯階段相依性,一律取決於公開所需API的最低所需版本。 這樣可以提供更高的回溯相容性,並使得對舊版進行反向移植修正更加容易。
從OSGi套件組合匯出最小套件集 export-a-minimal-set-of-packages-from-osgi-bundles
當套件已匯出時,已建立供其他人相依的API。 請務必儘可能減少匯出次數,並確認要匯出的內容為API。 取得私用方法/類別並設為公用會比取得先前已匯出的內容並設為私用要容易得多。
一律將實作放在單獨的 impl 套件中。 根據預設,maven-bundle-plugin 會匯出專案中名稱沒有 impl 的任何專案。
一律明確定義每個匯出套件的語意版本 always-explicitly-define-a-semantic-version-for-each-package-exported
這可讓您API的消費者與您一同發展。 這樣做時,請一律遵循語意版本設定最佳實務。 這可讓您API的消費者知道新版本中預期的變更型別。
在公開處包含中繼型別資訊 include-metatype-information-where-exposed
藉由指定有意義的中繼型別資訊,讓您的服務和元件在Felix主控台中更容易理解。 您可以在https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html找到SCR註解和屬性的清單。
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2