Этот репозиторий содержит официальный набор надстроек, реализованных поверх API-интерфейсов openHAB Core. Дополнения, принятые здесь, будут поддерживаться (например, адаптированными к новым основным API) разработчиками надстроек openHAB.
Чтобы начать разработку привязок, следуйте нашим рекомендациям и руководствам по адресу 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
. Например, чтобы построить только астропривязку:
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 и автоматически импортируется в Crowdin при внесении изменений в английский файл свойств i18n. Когда переводы добавляются, обновляются и утверждаются в 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
, вам может потребоваться обновить пакеты запуска в файле itest.bndrun
при изменении зависимостей Maven. Maven может автоматически разрешать зависимости интеграционного теста, выполнив:
mvn clean install -DwithResolver -DskipChecks
При сборке создается файл .jar
для каждого пакета в соответствующем каталоге пакета /target
.
На нашем сайте документации для разработчиков мы собрали несколько пошаговых руководств для различных IDE:
https://www.openhab.org/docs/developer/#setup-the-development-environment
Приятного кодирования!