このリポジトリには、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 で指定されているように動的に依存関係を持つバインディングがある場合は、 .jar
ファイルの代わりに.kar
を作成できます。 .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 機能の検証をスキップする |
-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
ビルドでは、バンドルごとに.jar
ファイルがそれぞれの Bundle /target
ディレクトリに生成されます。
開発者向けドキュメント Web サイトには、さまざまな IDE 向けのいくつかのステップバイステップ ガイドがまとめられています。
https://www.openhab.org/docs/developer/#setup-the-development-environment
コーディングを楽しんでください!