ITADN
openhab/openhab-addons
openhab/openhab-addons · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

openHAB 插件

openHAB logo

GitHub Actions Build Status Jenkins Build Status EPL-2.0 Crowdin

本仓库包含基于 openHAB Core 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 文件,请使用目标 karaf:kar 运行 Maven:

mvn clean install karaf:kar -pl :org.openhab.binding.astro

为了缩短构建时间,您可以向命令添加以下选项:

选项描述
-DskipChecks跳过静态分析(Checkstyle、FindBugs)
-DskipTests跳过测试执行
-Dmaven.test.skip=true跳过测试的编译和执行
-Dfeatures.verify.skip=true跳过 Karaf 功能验证
-Dmarkdownlint.skip=true跳过 Markdown 检查
-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:5.0.0:generate-default-translations

代码质量

要检查你的代码是否遵循 代码风格,请运行:

mvn spotless:check

要将代码重新格式化以符合代码风格,您可以运行:

mvn spotless:apply

集成测试

如果你的插件在 itests 目录中也有集成测试,当 Maven 依赖项发生变化时,你可能需要更新 itest.bndrun 文件中的 runbundles。 Maven 可以通过执行以下命令自动解析集成测试依赖项:

mvn clean install -DwithResolver -DskipChecks

构建会在各自的 bundle /target 目录中为每个 bundle 生成一个 .jar 文件。

故障排除

如果在运行集成测试时遇到问题,请尝试以下步骤:

  1. 清除 bnd 缓存:删除 ~/.bnd 目录。
  2. 重建 bom 索引:在 bom 目录中执行 mvn clean install
  3. 重建 itests 索引:在 itests 目录中执行 mvn clean install -N

如何通过集成开发环境 (IDE) 进行开发

我们在开发者文档网站上为不同的 IDE 整理了一些分步指南:

https://www.openhab.org/docs/developer/#setup-the-development-environment

快乐编码!