이 저장소에는 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
파일에서 실행 번들을 업데이트해야 할 수도 있습니다. Maven은 다음을 실행하여 통합 테스트 종속성을 자동으로 해결할 수 있습니다.
mvn clean install -DwithResolver -DskipChecks
빌드는 각 번들 /target
디렉터리에 번들당 .jar
파일을 생성합니다.
우리는 개발자 문서 웹사이트에 다양한 IDE에 대한 몇 가지 단계별 가이드를 정리했습니다.
https://www.openhab.org/docs/developer/#setup-the-development-environment
즐거운 코딩하세요!