يحتوي هذا المستودع على المجموعة الرسمية من الوظائف الإضافية التي يتم تنفيذها أعلى واجهات برمجة التطبيقات الأساسية openHAB. سيتم الحفاظ على الوظائف الإضافية التي تم قبولها هنا (على سبيل المثال، تكييفها مع واجهات برمجة التطبيقات الأساسية الجديدة) بواسطة مشرفي الوظائف الإضافية في openHAB.
للبدء في تطوير الربط، اتبع إرشاداتنا وبرامجنا التعليمية على 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
. على سبيل المثال لبناء الربط الفلكي فقط:
mvn clean install -pl :org.openhab.binding.astro
إذا كان لديك رابط يحتوي على تبعيات ديناميكيًا كما هو محدد في feature.xml، فيمكنك إنشاء ملف .kar
بدلاً من ملف .jar
. سيتضمن ملف .kar
الميزة.xml وعند إضافته إلى openHAB سيتم تحميل وتنشيط أي تبعيات محددة في ملف feature.xml. لإنشاء ملف .kar
، قم بتشغيل maven بهدف karaf:kar
:
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 | تخطي عمليات التحقق من نمط التعليمات البرمجية الناصعة |
-o | العمل دون الاتصال بالإنترنت حتى لا يقوم Maven بتنزيل أي تحديثات |
-T 1C | قم بالبناء بالتوازي، باستخدام خيط واحد لكل نواة |
-pl :<add-on directory> | إنشاء إضافة واحدة |
على سبيل المثال، يمكنك تخطي عمليات التحقق والاختبارات أثناء التطوير باستخدام:
mvn clean install -DskipChecks -DskipTests -pl :org.openhab.binding.astro
تؤدي إضافة هذه الخيارات إلى تحسين وقت الإنشاء ولكنها قد تؤدي إلى إخفاء المشكلات في التعليمات البرمجية الخاصة بك. تعد الإصدارات المتوازية أيضًا أقل سهولة في تصحيح الأخطاء وقد يؤدي الحمل المتزايد إلى فشل الاختبارات الحساسة للتوقيت.
تتم إدارة الترجمات الإضافية عبر Crowdin. يتم أخذ الترجمة الإنجليزية من openHAB-addons GitHub repo ويتم استيرادها تلقائيًا في Crowdin عند إجراء تغييرات على ملف خصائص i18n باللغة الإنجليزية. عند إضافة الترجمات أو تحديثها والموافقة عليها في 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
، فقد تحتاج إلى تحديث حزم التشغيل في ملف itest.bndrun
عندما تتغير تبعيات Maven. يمكن لـ Maven حل تبعيات اختبار التكامل تلقائيًا عن طريق تنفيذ:
mvn clean install -DwithResolver -DskipChecks
ينشئ البناء ملف .jar
لكل حزمة في دليل الحزمة /target
المعني.
لقد قمنا بتجميع بعض الأدلة خطوة بخطوة لبيئات تطوير متكاملة (IDEs) مختلفة على موقع توثيق المطورين الخاص بنا:
https://www.openhab.org/docs/developer/#setup-the-development-environment
ترميز سعيد!