Ce référentiel contient l'ensemble officiel de modules complémentaires implémentés au-dessus des API openHAB Core. Les modules complémentaires acceptés ici seront maintenus (par exemple adaptés aux nouvelles API principales) par les responsables des modules complémentaires openHAB.
Pour commencer avec le développement contraignant, suivez nos directives et tutoriels sur https://www.openhab.org/docs/developer.
Si vous êtes intéressé par le développement d'openHAB Core, nous vous invitons à venir nous voir sur https://github.com/openhab/openhab-core.
Certains modules complémentaires ne sont pas dans ce référentiel, mais font toujours partie de la distribution officielle openHAB. Une liste incomplète des autres référentiels suit ci-dessous :
Les modules complémentaires openHAB sont des fichiers Java .jar
.
Le système de build openHAB est basé sur Maven. L'IDE (environnement de développement intégré) officiel est Eclipse.
Vous trouvez la structure de référentiel suivante :
.
+-- 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.
Pour créer tous les modules complémentaires à partir de la ligne de commande, saisissez :
mvn clean install
La plupart du temps, vous n'avez pas besoin de créer toutes les liaisons, mais uniquement celle sur laquelle vous travaillez. Pour créer simplement uniquement votre liaison, utilisez l'option -pl
. Par exemple pour construire uniquement la liaison astro :
mvn clean install -pl :org.openhab.binding.astro
Si vous disposez d'une liaison comportant des dépendances dynamiques telles que spécifiées dans le fichier feature.xml, vous pouvez créer un fichier .kar
au lieu d'un fichier .jar
. Un fichier .kar
inclura le feature.xml et, une fois ajouté à openHAB, chargera et activera toutes les dépendances spécifiées dans le fichier feature.xml. Pour créer un fichier .kar
exécutez maven avec l'objectif karaf:kar
:
mvn clean install karaf:kar -pl :org.openhab.binding.astro
Pour améliorer les temps de construction, vous pouvez ajouter les options suivantes à la commande :
Option | Description |
---|---|
-DskipChecks | Ignorer l'analyse statique (Checkstyle, FindBugs) |
-DskipTests | Ignorer l'exécution des tests |
-Dmaven.test.skip=true | Ignorer la compilation et l'exécution des tests |
-Dfeatures.verify.skip=true | Ignorer la vérification de la fonctionnalité Karaf |
-Dspotless.check.skip=true | Ignorer les vérifications de style de code Spotless |
-o | Travaillez hors ligne pour que Maven ne télécharge aucune mise à jour |
-T 1C | Construire en parallèle, en utilisant 1 thread par cœur |
-pl :<add-on directory> | Créer un seul module complémentaire |
Par exemple, vous pouvez ignorer les vérifications et les tests pendant le développement avec :
mvn clean install -DskipChecks -DskipTests -pl :org.openhab.binding.astro
L'ajout de ces options améliore le temps de construction mais pourrait masquer des problèmes dans votre code. Les builds parallèles sont également moins faciles à déboguer et la charge accrue peut entraîner l’échec des tests sensibles au timing.
Les traductions complémentaires sont gérées via Crowdin. La traduction anglaise est extraite du dépôt GitHub openHAB-addons et automatiquement importée dans Crowdin lorsque des modifications sont apportées au fichier de propriétés anglais i18n. Lorsque les traductions sont ajoutées ou mises à jour et approuvées dans Crowdin, une pull request est automatiquement créée par Crowdin. Par conséquent, les traductions ne doivent pas être modifiées dans le dépôt openHAB-addons, mais uniquement dans Crowdin. Sinon, la traduction est annulée par le processus automatique.
Pour remplir le fichier de propriétés en anglais, exécutez la commande maven suivante sur un module complémentaire :
mvn i18n:generate-default-translations
Cette commande peut également mettre à jour le fichier lorsque des éléments ou un canal sont ajoutés ou mis à jour.
Dans certains cas, la commande ne fonctionne pas et nécessite le nom complet du plug-in. Dans ce cas, utilisez :
mvn org.openhab.core.tools:i18n-maven-plugin:3.4.0:generate-default-translations
Pour vérifier si votre code suit le style de code exécuté :
mvn spotless:check
Pour reformater votre code afin qu'il soit conforme au style de code que vous pouvez exécuter :
mvn spotless:apply
Lorsque votre module complémentaire dispose également d'un test d'intégration dans le répertoire itests
, vous devrez peut-être mettre à jour les runbundles dans le fichier itest.bndrun
lorsque les dépendances Maven changent. Maven peut résoudre automatiquement les dépendances des tests d'intégration en exécutant :
mvn clean install -DwithResolver -DskipChecks
La build génère un fichier .jar
par bundle dans le répertoire bundle /target
respectif.
Nous avons rassemblé quelques guides étape par étape pour différents IDE sur notre site Web de documentation pour les développeurs :
https://www.openhab.org/docs/developer/#setup-the-development-environment
Bon codage !