Este repositório contém o conjunto oficial de complementos que são implementados nas APIs do openHAB Core. Os complementos aceitos aqui serão mantidos (por exemplo, adaptados às novas APIs principais) pelos mantenedores do complemento openHAB.
Para começar com o desenvolvimento de vinculação, siga nossas diretrizes e tutoriais em https://www.openhab.org/docs/developer.
Se você estiver interessado no desenvolvimento do openHAB Core, convidamos você a visitar https://github.com/openhab/openhab-core.
Alguns complementos não estão neste repositório, mas ainda fazem parte da distribuição oficial do openHAB. Uma lista incompleta de outros repositórios segue abaixo:
Os complementos openHAB são arquivos Java .jar
.
O sistema de construção openHAB é baseado em Maven. O IDE (ambiente de desenvolvimento integrado) oficial é o Eclipse.
Você encontra a seguinte estrutura de repositório:
.
+-- 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 construir todos os complementos a partir da linha de comando, digite:
mvn clean install
Na maioria das vezes você não precisa construir todas as ligações, mas apenas a ligação em que está trabalhando. Para simplesmente construir apenas sua ligação, use a opção -pl
. Por exemplo, para construir apenas a ligação astro:
mvn clean install -pl :org.openhab.binding.astro
Se você tiver uma ligação que tenha dependências dinamicamente conforme especificado no feature.xml, poderá criar um .kar
em vez de um arquivo .jar
. Um arquivo .kar
incluirá feature.xml e quando adicionado ao openHAB carregará e ativará quaisquer dependências especificadas no arquivo feature.xml. Para criar um arquivo .kar
execute maven com o objetivo karaf:kar
:
mvn clean install karaf:kar -pl :org.openhab.binding.astro
Para melhorar os tempos de construção, você pode adicionar as seguintes opções ao comando:
Opção | Descrição |
---|---|
-DskipChecks | Ignore a análise estática (Checkstyle, FindBugs) |
-DskipTests | Ignorar a execução de testes |
-Dmaven.test.skip=true | Ignore a compilação e execução de testes |
-Dfeatures.verify.skip=true | Ignore a verificação do recurso Karaf |
-Dspotless.check.skip=true | Ignore as verificações de estilo de código Spotless |
-o | Trabalhe offline para que o Maven não baixe nenhuma atualização |
-T 1C | Construa em paralelo, usando 1 thread por núcleo |
-pl :<add-on directory> | Crie um único complemento |
Por exemplo, você pode pular verificações e testes durante o desenvolvimento com:
mvn clean install -DskipChecks -DskipTests -pl :org.openhab.binding.astro
Adicionar essas opções melhora o tempo de construção, mas pode ocultar problemas no seu código. Compilações paralelas também são menos fáceis de depurar e o aumento da carga pode causar falhas nos testes sensíveis ao tempo.
As traduções complementares são gerenciadas via Crowdin. A tradução em inglês é retirada do repositório GitHub openHAB-addons e importada automaticamente no Crowdin quando alterações são feitas no arquivo de propriedades i18n em inglês. Quando traduções são adicionadas ou atualizadas e aprovadas no Crowdin, uma solicitação pull é criada automaticamente pelo Crowdin. Portanto as traduções não devem ser editadas no repositório openHAB-addons, mas apenas no Crowdin. Caso contrário, a tradução será substituída pelo processo automático.
Para preencher o arquivo de propriedades em inglês, execute o seguinte comando maven em um complemento:
mvn i18n:generate-default-translations
Este comando também pode atualizar o arquivo quando itens ou canais são adicionados ou atualizados.
Em alguns casos, o comando não funciona e requer o nome completo do plug-in. Nesse caso use:
mvn org.openhab.core.tools:i18n-maven-plugin:3.4.0:generate-default-translations
Para verificar se o seu código está seguindo o estilo de código, execute:
mvn spotless:check
Para reformatar seu código para que fique em conformidade com o estilo de código que você pode executar:
mvn spotless:apply
Quando seu complemento também tiver um teste de integração no diretório itests
, pode ser necessário atualizar os runbundles no arquivo itest.bndrun
quando as dependências do Maven mudarem. O Maven pode resolver as dependências do teste de integração automaticamente executando:
mvn clean install -DwithResolver -DskipChecks
A compilação gera um arquivo .jar
por pacote configurável no respectivo diretório bundle /target
.
Reunimos alguns guias passo a passo para diferentes IDEs em nosso site de documentação do desenvolvedor:
https://www.openhab.org/docs/developer/#setup-the-development-environment
Boa codificação!