該儲存庫包含在 openHAB 核心 API 之上實現的官方附加元件集。此處接受的附加元件將由 openHAB 附加元件維護者進行維護(例如,適應新的核心 API)。
要開始綁定開發,請遵循 https://www.openhab.org/docs/developer 上的指南和教學。
如果您對 openHAB Core 開發感興趣,我們邀請您訪問 https://github.com/openhab/openhab-core。
一些附加元件不在此儲存庫中,但仍然是官方 openHAB 發行版的一部分。其他儲存庫的不完整清單如下:
openHAB 附加元件是 Java .jar
檔。
openHAB 建置系統是基於 Maven。官方的IDE(整合開發環境)是Eclipse。
您會發現以下儲存庫結構:
.
+-- bom Maven buildsystem: Bill of materials
| +-- openhab-addons Lists all extensions for other repos to reference them
| +-- ... Other boms
|
+-- bundles Official openHAB extensions
| +-- org.openhab.binding.airquality
| +-- org.openhab.binding.astro
| +-- ...
|
+-- features Part of the runtime dependency resolver ("Karaf features")
|
+-- itests Integration tests. Those tests require parts of the framework to run.
| +-- org.openhab.binding.astro.tests
| +-- org.openhab.binding.avmfritz.tests
| +-- ...
|
+-- src/etc Auxilary buildsystem files: The license header for automatic checks for example
+-- tools Static code analyser instructions
|
+-- CODEOWNERS This file assigns people to directories so that they are informed if a pull-request
would modify their add-ons.
若要從命令列建置所有附加元件,請輸入:
mvn clean install
大多數時候,您不需要建立所有綁定,而只需建立您正在處理的綁定。若要僅建置您的綁定,請使用-pl
選項。例如,僅建構 astro 綁定:
mvn clean install -pl :org.openhab.binding.astro
如果您的綁定具有在 feature.xml 中動態指定的依賴項,則可以建立.kar
而不是.jar
檔。 .kar
檔案將包含 feature.xml,並且在新增至 openHAB 時將載入並啟動 feature.xml 檔案中指定的任何依賴項。要建立.kar
文件,請執行 maven,目標是karaf:kar
:
mvn clean install karaf:kar -pl :org.openhab.binding.astro
若要縮短建置時間,您可以將以下選項新增至命令:
選項 | 描述 |
---|---|
-DskipChecks | 跳過靜態分析(Checkstyle、FindBugs) |
-DskipTests | 跳過測試的執行 |
-Dmaven.test.skip=true | 跳過測試的編譯和執行 |
-Dfeatures.verify.skip=true | 跳過Karaf功能驗證 |
-Dspotless.check.skip=true | 跳過 Spotless 程式碼風格檢查 |
-o | 離線工作,因此 Maven 不會下載任何更新 |
-T 1C | 並行構建,每個核心使用 1 個線程 |
-pl :<add-on directory> | 建構單一附加元件 |
例如,您可以在開發過程中跳過檢查和測試:
mvn clean install -DskipChecks -DskipTests -pl :org.openhab.binding.astro
新增這些選項可以縮短建置時間,但可能會隱藏程式碼中的問題。並行建置也不太容易調試,並且增加的負載可能會導致對時間敏感的測試失敗。
附加翻譯透過 Crowdin 進行管理。英文翻譯取自 openHAB-addons GitHub 儲存庫,並在對英文 i18n 屬性檔案進行變更時自動匯入 Crowdin 中。在 Crowdin 中新增或更新並批准翻譯後,Crowdin 會自動建立拉取要求。因此,不應在 openHAB-addons 儲存庫中編輯翻譯,而只能在 Crowdin 中編輯。否則翻譯將被自動過程覆蓋。
若要填入英文屬性文件,請在附加元件上執行以下 Maven 指令:
mvn i18n:generate-default-translations
當新增或更新事物或頻道時,此命令也可以更新檔案。
在某些情況下,該命令不起作用,並且需要完整的插件名稱。在這種情況下使用:
mvn org.openhab.core.tools:i18n-maven-plugin:3.4.0:generate-default-translations
要檢查您的程式碼是否遵循程式碼風格,請執行:
mvn spotless:check
要重新格式化您的程式碼,使其符合您可以運行的程式碼風格:
mvn spotless:apply
當您的附加元件在itests
目錄中也有整合測試時,當 Maven 依賴項發生變更時,您可能需要更新itest.bndrun
檔案中的 runbundle。 Maven 可以透過執行下列命令自動解決整合測試依賴關係:
mvn clean install -DwithResolver -DskipChecks
建置會在對應的包/target
目錄中為每個包產生一個.jar
檔。
我們在開發人員文件網站上為不同 IDE 整理了一些逐步指南:
https://www.openhab.org/docs/developer/#setup-the-development-environment
快樂編碼!