Repositori ini berisi kumpulan add-on resmi yang diimplementasikan di atas API Inti openHAB. Add-on yang diterima di sini akan dikelola (misalnya disesuaikan dengan API inti baru) oleh pengelola Add-on openHAB.
Untuk memulai pengembangan pengikatan, ikuti panduan dan tutorial kami di https://www.openhab.org/docs/developer.
Jika Anda tertarik dengan pengembangan openHAB Core, kami mengundang Anda untuk datang di https://github.com/openhab/openhab-core.
Beberapa add-on tidak ada dalam repositori ini, tetapi masih menjadi bagian dari distribusi resmi openHAB. Daftar lengkap repositori lainnya berikut di bawah ini:
add-on openHAB adalah file Java .jar
.
Sistem pembangunan openHAB didasarkan pada Maven. IDE resmi (Lingkungan pengembangan terintegrasi) adalah Eclipse.
Anda menemukan struktur repositori berikut:
.
+-- 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.
Untuk membuat semua add-on dari baris perintah, ketik:
mvn clean install
Seringkali Anda tidak perlu membuat semua binding, namun hanya binding yang sedang Anda kerjakan. Untuk sekadar membuat penjilidan Anda saja, gunakan opsi -pl
. Misalnya untuk membuat pengikatan astro saja:
mvn clean install -pl :org.openhab.binding.astro
Jika Anda memiliki pengikatan yang memiliki dependensi yang secara dinamis seperti yang ditentukan dalam feature.xml, Anda dapat membuat file .kar
alih-alih file .jar
. File .kar
akan menyertakan feature.xml dan ketika ditambahkan ke openHAB akan memuat dan mengaktifkan semua dependensi yang ditentukan dalam file feature.xml. Untuk membuat file .kar
, jalankan maven dengan tujuan karaf:kar
:
mvn clean install karaf:kar -pl :org.openhab.binding.astro
Untuk meningkatkan waktu build, Anda dapat menambahkan opsi berikut ke perintah:
Pilihan | Keterangan |
---|---|
-DskipChecks | Lewati analisis statis (Checkstyle, FindBugs) |
-DskipTests | Lewati pelaksanaan tes |
-Dmaven.test.skip=true | Lewati kompilasi dan pelaksanaan tes |
-Dfeatures.verify.skip=true | Lewati verifikasi fitur Karaf |
-Dspotless.check.skip=true | Lewati pemeriksaan gaya kode Spotless |
-o | Bekerja offline sehingga Maven tidak mengunduh pembaruan apa pun |
-T 1C | Bangun secara paralel, menggunakan 1 thread per inti |
-pl :<add-on directory> | Buat satu add-on |
Misalnya Anda dapat melewati pemeriksaan dan pengujian selama pengembangan dengan:
mvn clean install -DskipChecks -DskipTests -pl :org.openhab.binding.astro
Menambahkan opsi ini akan meningkatkan waktu pembuatan tetapi dapat menyembunyikan masalah dalam kode Anda. Pembuatan paralel juga kurang mudah untuk di-debug dan peningkatan beban dapat menyebabkan kegagalan pengujian sensitif waktu.
Terjemahan tambahan dikelola melalui Crowdin. Terjemahan bahasa Inggris diambil dari repo GitHub openHAB-addons dan secara otomatis diimpor ke Crowdin ketika ada perubahan pada file properti i18n bahasa Inggris. Ketika terjemahan ditambahkan atau diperbarui dan disetujui di Crowdin, permintaan penarikan secara otomatis dibuat oleh Crowdin. Oleh karena itu terjemahan tidak boleh diedit di repo openHAB-addons, tetapi hanya di Crowdin. Jika tidak, terjemahan akan ditimpa oleh proses otomatis.
Untuk mengisi file properti bahasa Inggris, jalankan perintah maven berikut pada add-on:
mvn i18n:generate-default-translations
Perintah ini juga dapat memperbarui file ketika sesuatu atau saluran ditambahkan atau diperbarui.
Dalam beberapa kasus, perintah tersebut tidak berfungsi dan memerlukan nama plugin lengkap. Dalam hal ini gunakan:
mvn org.openhab.core.tools:i18n-maven-plugin:3.4.0:generate-default-translations
Untuk memeriksa apakah kode Anda mengikuti gaya kode yang dijalankan:
mvn spotless:check
Untuk memformat ulang kode Anda agar sesuai dengan gaya kode yang dapat Anda jalankan:
mvn spotless:apply
Jika add-on Anda juga memiliki pengujian integrasi di direktori itests
, Anda mungkin perlu memperbarui runbundle di file itest.bndrun
saat dependensi Maven berubah. Maven dapat menyelesaikan dependensi pengujian integrasi secara otomatis dengan menjalankan:
mvn clean install -DwithResolver -DskipChecks
Build menghasilkan file .jar
per bundel di direktori bundel /target
masing-masing.
Kami telah mengumpulkan beberapa panduan langkah demi langkah untuk berbagai IDE di situs dokumentasi pengembang kami:
https://www.openhab.org/docs/developer/#setup-the-development-environment
Selamat membuat kode!