Este repositorio contiene el conjunto oficial de complementos que se implementan sobre las API principales de openHAB. Los mantenedores de complementos de openHAB mantendrán los complementos que fueron aceptados aquí (por ejemplo, adaptados a nuevas API principales).
Para comenzar con el desarrollo vinculante, siga nuestras pautas y tutoriales en https://www.openhab.org/docs/developer.
Si está interesado en el desarrollo de openHAB Core, lo invitamos a visitar https://github.com/openhab/openhab-core.
Algunos complementos no se encuentran en este repositorio, pero aún forman parte de la distribución oficial de openHAB. A continuación se incluye una lista incompleta de otros repositorios:
Los complementos de openHAB son archivos Java .jar
.
El sistema de construcción openHAB está basado en Maven. El IDE (entorno de desarrollo integrado) oficial es Eclipse.
Encontrará la siguiente estructura de repositorio:
.
+-- 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.
Para crear todos los complementos desde la línea de comandos, escriba:
mvn clean install
La mayoría de las veces no es necesario crear todos los enlaces, sino sólo el enlace en el que está trabajando. Para simplemente construir solo su enlace use la opción -pl
. Por ejemplo, para construir sólo el enlace astro:
mvn clean install -pl :org.openhab.binding.astro
Si tiene un enlace que tiene dependencias dinámicas como se especifica en feature.xml, puede crear un archivo .kar
en lugar de un archivo .jar
. Un archivo .kar
incluirá feature.xml y, cuando se agregue a openHAB, cargará y activará cualquier dependencia especificada en el archivo feature.xml. Para crear un archivo .kar
, ejecute maven con el objetivo karaf:kar
:
mvn clean install karaf:kar -pl :org.openhab.binding.astro
Para mejorar los tiempos de compilación, puede agregar las siguientes opciones al comando:
Opción | Descripción |
---|---|
-DskipChecks | Saltar el análisis estático (Checkstyle, FindBugs) |
-DskipTests | Saltarse la ejecución de pruebas. |
-Dmaven.test.skip=true | Saltarse la compilación y ejecución de pruebas. |
-Dfeatures.verify.skip=true | Omita la verificación de la función Karaf |
-Dspotless.check.skip=true | Omita las comprobaciones de estilo de código de Spotless |
-o | Trabaje sin conexión para que Maven no descargue ninguna actualización |
-T 1C | Construya en paralelo, usando 1 subproceso por núcleo |
-pl :<add-on directory> | Cree un complemento único |
Por ejemplo, puede omitir comprobaciones y pruebas durante el desarrollo con:
mvn clean install -DskipChecks -DskipTests -pl :org.openhab.binding.astro
Agregar estas opciones mejora el tiempo de compilación, pero podría ocultar problemas en su código. Las compilaciones paralelas también son menos fáciles de depurar y el aumento de la carga puede provocar que fallen las pruebas sensibles al tiempo.
Las traducciones de complementos se gestionan a través de Crowdin. La traducción al inglés se toma del repositorio de GitHub de openHAB-addons y se importa automáticamente en Crowdin cuando se realizan cambios en el archivo de propiedades de i18n en inglés. Cuando se agregan, actualizan y aprueban traducciones en Crowdin, Crowdin crea automáticamente una solicitud de extracción. Por lo tanto, las traducciones no deben editarse en el repositorio de complementos de openHAB, sino solo en Crowdin. De lo contrario, el proceso automático anulará la traducción.
Para completar el archivo de propiedades en inglés, ejecute el siguiente comando maven en un complemento:
mvn i18n:generate-default-translations
Este comando también puede actualizar el archivo cuando se agregan o actualizan elementos o canales.
En algunos casos, el comando no funciona y requiere el nombre completo del complemento. En ese caso utilice:
mvn org.openhab.core.tools:i18n-maven-plugin:3.4.0:generate-default-translations
Para verificar si su código sigue el estilo de código, ejecute:
mvn spotless:check
Para reformatear su código para que se ajuste al estilo de código, puede ejecutar:
mvn spotless:apply
Cuando su complemento también tiene una prueba de integración en el directorio itests
, es posible que necesite actualizar los runbundles en el archivo itest.bndrun
cuando cambien las dependencias de Maven. Maven puede resolver las dependencias de las pruebas de integración automáticamente ejecutando:
mvn clean install -DwithResolver -DskipChecks
La compilación genera un archivo .jar
por paquete en el directorio de paquete /target
respectivo.
Hemos reunido algunas guías paso a paso para diferentes IDE en nuestro sitio web de documentación para desarrolladores:
https://www.openhab.org/docs/developer/#setup-the-development-environment
¡Feliz codificación!