آخر نسخة صغيرة من سحابة الربيع هي 3.1. يمكنك التحقق من فرع 3.1.x لأحدث الارتباط.
تحذير | لن تعمل سحابة الربيع مع Spring Boot 3.x فصاعدًا. آخر إصدار رئيسي من Spring Boot الذي سيدعمه Sleuth هو 2.x. |
تم نقل جوهر هذا المشروع إلى مشروع تتبع الميكرومتر وسيتم نقل الأجهزة إلى الميكرومتر وجميع المشاريع المعنية (لم تعد جميع الأجهزة في مستودع واحد.
يمكنك التحقق من دليل ترحيل تتبع الميكرومتر لمعرفة كيفية الترحيل من سحابة الربيع إلى تتبع الميكرومتر.
يوفر Spring Cloud Sleuth التكوين التلقائي للتمهيد الربيعي للتتبع الموزع.
تقوم Sleuth بتكوين كل ما تحتاجه للبدء. يتضمن ذلك المكان الذي يتم فيه الإبلاغ عن بيانات التتبع (الفترات) ، وعدد الآثار التي يجب الاحتفاظ بها (أخذ العينات) ، وإذا تم إرسال الحقول البعيدة (الأمتعة) ، والتي يتم تتبع المكتبات.
أضف Spring Cloud Sleuth إلى ClassPath لتطبيق Boot Spring (جنبًا إلى جنب مع تطبيق Tracer) وسترى معرفات Trace في السجلات. مثال على Sleuth مع Tracer الشجاع:
<!-يتطلب سحابة الربيع سحابة زنبركية-> <RependencyManagement>
<تبعيات>
<premency>
<roupl> org.springframework.cloud </groupId>
<StifactId> تعبيد السحابة الربيعة </artifactid> <!-توفير أحدث إصدار من قطار إصدار السحابة الربيع المستقر (على سبيل المثال 2020.0.0)-> <الإصدار> $ {relext
<type> pom </type>
<scope> استيراد </scope>
</التبعية>
</التبعيات>
</premencymanagement>
<ependencies> <!-دعم الويب الخاص بالتمهيد-> <التبعية>
<roupl> org.springframework.boot </groupId>
<StifactId> Spring-Boot-Starter-Web </stifactid>
</premency> <!-Sleuth مع تطبيق Tracer Brave-> <التبعية>
<roupl> org.springframework.cloud </groupId>
<Stifactid> spring-cloud-starter-sleuth </artifactid>
</التبعية>
</التبعيات>النظر في معالج HTTP التالي:
RestControllerPublic class democontroller {private static logger log = loggerfactory.getLogger (democontroller.class) ؛@requestmapping ("/") public string home () {log.info ("handling home") ؛ return "Hello World" ؛
}
} إذا قمت بإضافة هذا المعالج إلى وحدة تحكم ، فيمكنك رؤية المكالمات إلى home() يتم تتبعها في السجلات (لاحظ معرفات 0b6aaf642574edd3 ).
2020-10-21 12: 01: 16.285 INFO [، 0B6AAF642574EDD3،0B6AAF642574EDD3 ، TRUE] 289589 ---
ملحوظة | بدلاً من تسجيل الطلب في المعالج بشكل صريح ، يمكنك تعيين logging.level.org.springframework.web.servlet.DispatcherServlet=DEBUG . |
ملحوظة | قم بتعيين spring.application.name=myService (على سبيل المثال) لرؤية اسم الخدمة بالإضافة إلى التتبع والمعرفات. |
يرجى زيارة صفحة التوثيق لقراءة المزيد حول المشروع.
لإنشاء المصدر ، ستحتاج إلى تثبيت JDK 1.8.
تستخدم Spring Cloud Maven لمعظم الأنشطة المتعلقة بالبناء ، ويجب أن تكون قادرًا على الخروج من الأرض بسرعة كبيرة من خلال استنساخ المشروع الذي تهتم به والكتابة
$ ./MVNW تثبيت
ملحوظة | يمكنك أيضًا تثبيت Maven (> = 3.3.3) بنفسك وتشغيل أمر mvn بدلاً من ./mvnw في الأمثلة أدناه. إذا قمت بذلك ، فقد تحتاج أيضًا إلى إضافة -P spring إذا كانت إعدادات Maven المحلية لا تحتوي على إعلانات مستودع للقطع الأثرية قبل الإصدار الربيع. |
ملحوظة | كن على دراية بأنك قد تحتاج إلى زيادة كمية الذاكرة المتاحة لـ Maven عن طريق تعيين متغير بيئة MAVEN_OPTS مع قيمة مثل -Xmx512m -XX:MaxPermSize=128m . نحاول تغطية هذا في تكوين .mvn ، لذلك إذا وجدت أنه يتعين عليك القيام بذلك لإجراء تنجح في إنشاء ، فيرجى رفع تذكرة لإضافة الإعدادات إلى عنصر التحكم المصدر. |
تتطلب المشاريع التي تتطلب الوسيطة (IE redis) للاختبار عمومًا أن يتم تثبيت مثيل محلي لـ [docker] (https://www.docker.com/get-started).
تحتوي وحدة البناء النابضة للانزلاق على ملف تعريف "مستندات" ، وإذا قمت بتشغيل ذلك ، فسيحاول بناء مصادر ASCIIDOC من src/main/asciidoc . كجزء من هذه العملية ، سيبحث عن README.adoc ومعالجته عن طريق تحميل كل ما يشمله ، ولكن ليس تحليلها أو تقديمها ، فقط نسخها إلى ${main.basedir} (الافتراضيات إلى ${basedir} ، أي الجذر من المشروع). إذا كان هناك أي تغييرات في ReadMe ، فسيظهر بعد ذلك بعد إنشاء Maven كملف معدّل في المكان الصحيح. فقط ارتكبها وادفع التغيير.
إذا لم يكن لديك تفضيل IDE ، فإننا نوصيك باستخدام SPRING Tools Suite أو Eclipse عند العمل مع الكود. نستخدم المكون الإضافي M2Eclipse Eclipse لدعم Maven. يجب أن تعمل IDEs والأدوات الأخرى أيضًا بدون مشكلة طالما أنها تستخدم Maven 3.3.3 أو أفضل.
تتطلب مشاريع الربيع السحابية تنشيط ملف تعريف "الربيع" Maven لحل معلم الربيع ومستودعات اللقطات. استخدم IDE المفضل لديك لتعيين هذا الملف الشخصي ليكون نشطًا ، أو قد تواجه أخطاء بناء.
نوصي المكون الإضافي M2Eclipse Eclipse عند العمل مع Eclipse. إذا لم يكن لديك بالفعل تثبيت M2Eclipse ، فسيكون متاحًا من "Eclipse Marketplace".
ملحوظة | لا تدعم الإصدارات الأقدم من M2E Maven 3.3 ، لذلك بمجرد استيراد المشاريع إلى Eclipse ، ستحتاج أيضًا إلى إخبار M2Eclipse باستخدام الملف الشخصي الصحيح للمشاريع. إذا رأيت العديد من الأخطاء المختلفة المتعلقة بـ POMS في المشاريع ، فتحقق من أن لديك تثبيت محدث. إذا لم تتمكن من ترقية M2E ، فأضف ملف تعريف "Spring" إلى settings.xml . بدلاً من ذلك ، يمكنك نسخ إعدادات المستودع من ملف تعريف "الربيع" الخاص بـ POM الأصل في settings.xml الخاصة بك. |
إذا كنت تفضل عدم استخدام M2Eclipse ، فيمكنك إنشاء بيانات تعريف مشروع Eclipse باستخدام الأمر التالي:
$ ./MVNW Eclipse: Eclipse
يمكن استيراد مشاريع Eclipse التي تم إنشاؤها عن طريق اختيار import existing projects من قائمة file .
يتم إصدار Spring Cloud بموجب ترخيص Apache 2.0 غير المقيد ، ويتبع عملية تطوير GitHub قياسية للغاية ، باستخدام Github Tracker للمشكلات ودمج طلبات السحب في Master. إذا كنت ترغب في المساهمة حتى بشيء تافهة ، فالرجاء لا تتردد ، ولكن اتبع الإرشادات أدناه.
قبل أن نقبل تصحيحًا غير تميز أو طلب سحب ، سنحتاج منك لتوقيع اتفاقية ترخيص المساهم. إن توقيع اتفاق المساهم لا يمنح أي شخص يلتزم بالحقوق في المستودع الرئيسي ، ولكن هذا يعني أنه يمكننا قبول مساهماتك ، وستحصل على رصيد مؤلف إذا فعلنا ذلك. قد يُطلب من المساهمين النشطين الانضمام إلى الفريق الأساسي ، وبالنظر إلى القدرة على دمج طلبات السحب.
يلتزم هذا المشروع بقواعد سلوك العهد المساهم. من خلال المشاركة ، من المتوقع أن تدعم هذا الرمز. يرجى الإبلاغ عن سلوك غير مقبول إلى [email protected].
لا شيء من هذه ضروري لطلب السحب ، لكنهم سيساعدون جميعًا. يمكن أيضًا إضافتها بعد طلب السحب الأصلي ولكن قبل الاندماج.
استخدم اتفاقيات تنسيق رمز الإطار الربيع. إذا كنت تستخدم Eclipse ، فيمكنك استيراد إعدادات التنسيق باستخدام ملف eclipse-code-formatter.xml من مشروع SPRING Cloud Build. إذا كنت تستخدم IntelliJ ، يمكنك استخدام المكون الإضافي لتنسيق رمز Eclipse لاستيراد نفس الملف.
تأكد من أن جميع ملفات .java جديدة للحصول على تعليق من فئة Javadoc بسيطة مع علامة @author على الأقل تحدد لك ، ويفضل على الأقل فقرة حول ماهية الفصل.
أضف تعليق رأس ترخيص ASF إلى جميع ملفات .java الجديدة (نسخ من الملفات الموجودة في المشروع)
أضف نفسك @author إلى ملفات .java التي تقوم بتعديلها بشكل كبير (أكثر من التغييرات التجميلية).
أضف بعض Javadocs ، وإذا قمت بتغيير مساحة الاسم ، فإن بعض عناصر Doc XSD.
بعض اختبارات الوحدة من شأنها أن تساعد كثيرًا أيضًا - على شخص ما القيام بذلك.
إذا لم يكن هناك أي شخص آخر يستخدم فرعك ، فيرجى إعادة صيده ضد السيد الحالي (أو فرع مستهدف آخر في المشروع الرئيسي).
عند كتابة رسالة ارتكاب ، يرجى اتباع هذه الاتفاقيات ، إذا كنت تقوم بإصلاح مشكلة موجودة ، فيرجى إضافة Fixes gh-XXXX في نهاية رسالة الالتزام (حيث XXXX هو رقم المشكلة).
Build Cloud Build يأتي مع مجموعة من قواعد الفحص. يمكنك العثور عليها في وحدة spring-cloud-build-tools . أبرز الملفات تحت الوحدة هي:
أدوات البناء الربيعي/
└ SRC
├ checkstyle
│ └ checkstyle-supressions.xml (3)
└ الرئيسي
└ الموارد
├ CheckStyle-Header.txt (2)
└ checkstyle.xml (1)قواعد الفحص الافتراضية
إعداد رأس الملف
قواعد القمع الافتراضية
يتم تعطيل قواعد CheckStyle بشكل افتراضي . لإضافة chockstyle إلى مشروعك ، فقط حدد الخصائص والمكونات الإضافية التالية.
pom.xml
<Properties>
<maven-checkstyle-plugin.failsonerror> true </maven-checkstyle-plugin.failsonerror> (1) <maven-checkstyle-plugin.failsonviolation> true
</maven-checkstyle-plugin.failsonviolation> (2) <maven-ceckstyle-plugin.includetestsourcedirectory> true
</maven-checkstyle-plugin.includetestsourcedirectory> (3) </properties>
<build>
<reclosins>
<reclosin> (4) <LuckId> io.spring.javaformat </roughid>
<StifactId> Spring-Javaformat-Maven-Plugin </stifactid>
</plugin>
<reclosin> (5) <LuckId> org.apache.maven.plugins </rougeid>
<StifactId> maven-checkstyle-plugin </stifactid>
</plugin>
</plugins>
<reators>
<reclosins>
<reclosin> (5) <LuckId> org.apache.maven.plugins </rougeid>
<StifactId> maven-checkstyle-plugin </stifactid>
</plugin>
</plugins>
</reporting>
</build>يفشل في البناء على أخطاء الفحص
يفشل في البناء عند انتهاكات الفحص
تحليلات الفحص أيضا مصادر الاختبار
أضف المكون الإضافي لتنسيق Java الربيعي الذي سيعيد إعادة تنسيق الكود الخاص بك لتمرير معظم قواعد تنسيق CheckStyle
أضف البرنامج المساعد إلى مراحل البناء والإبلاغ
إذا كنت بحاجة إلى قمع بعض القواعد (على سبيل المثال ، يجب أن يكون طول السطر أطول) ، فسيكون ذلك كافياً لتحديد ملف تحت ${project.root}/src/checkstyle/checkstyle-suppressions.xml مع قمعك. مثال:
ProjectRoot/SRC/checkstyle/checkstyle-suppresions.xml
<؟ XML الإصدار = "1.0"؟> <! Doctype قمعية عامة "-// جرو الزحف // قمع DTD 1.1 // en" "https://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <قمع> <قمع الملفات = ".*configserverapplication.java" checks = "HideUtilityClassConstructor"/> <قمع الملفات = " </sucpressions>
من المستحسن نسخ ${spring-cloud-build.rootFolder}/.editorconfig و ${spring-cloud-build.rootFolder}/.springformat إلى مشروعك. وبهذه الطريقة ، سيتم تطبيق بعض قواعد التنسيق الافتراضي. يمكنك القيام بذلك عن طريق تشغيل هذا البرنامج النصي:
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/.editorconfig -o .editorConfig $ touch .springformat
من أجل إعداد Intellij ، يجب عليك استيراد اتفاقيات الترميز الخاصة بنا وملفات تعريف التفتيش وإعداد المكون الإضافي CheckStyle. يمكن العثور على الملفات التالية في مشروع SPRING Cloud Build.
أدوات البناء الربيعي/
└ SRC
├ checkstyle
│ └ checkstyle-supressions.xml (3)
└ الرئيسي
└ الموارد
├ CheckStyle-Header.txt (2)
├ checkstyle.xml (1)
└ Intellij
├ intellij_project_defaults.xml (4)
└ intellij_spring_boot_java_conventions.xml (5)قواعد الفحص الافتراضية
إعداد رأس الملف
قواعد القمع الافتراضية
افتراضيات المشروع لـ Intellij التي تطبق معظم قواعد CheckStyle
اتفاقيات نمط المشروع لـ Intellij التي تطبق معظم قواعد الفحص
الشكل 1. نمط الكود
انتقل إلى File ← Settings ← Editor ← Code style . هناك انقر فوق الرمز بجانب قسم Scheme . هناك ، انقر على قيمة Import Scheme واختر خيار Intellij IDEA code style XML . استيراد spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml .
الشكل 2. ملفات تعريف التفتيش
انتقل إلى File ← Settings ← Editor ← Inspections . هناك انقر فوق الرمز الموجود بجوار قسم Profile . هناك ، انقر على Import Profile واستيراد ملف spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml .
CheckStyle
للحصول على intellij العمل مع CheckStyle ، يجب عليك تثبيت المكون الإضافي Checkstyle . من المستحسن أيضًا تثبيت Assertions2Assertj لتحويل التأكيدات Junit تلقائيًا
انتقل إلى File → Settings ← Other settings ← Checkstyle . هناك انقر فوق رمز + في قسم Configuration file . هناك ، يجب عليك تحديد المكان الذي يجب أن يتم فيه اختيار قواعد CheckStyle. في الصورة أعلاه ، اخترنا القواعد من مستودع إنشاء سحابة الربيع المستنسخة. ومع ذلك ، يمكنك الإشارة إلى مستودع GitHub GitHub الخاص بـ SPRING Cloud (على سبيل المثال لـ checkstyle.xml : https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/spring-cloud-build-tools/src/main/resources/checkstyle.xml ). نحن بحاجة إلى توفير المتغيرات التالية:
checkstyle.header.file يرجى توجيهه إلى سحابة الربيع ، spring-cloud-build-tools/src/main/resources/checkstyle-header.txt إما في ريبو المستنسخة أو عبر https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt url.
checkstyle.suppressions.file - القامات الافتراضية. يرجى توجيهها إلى SPRING Cloud Build's ، spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml إما في ريبو المستنسخة أو عبر https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml url.
checkstyle.additional.suppressions.file - هذا المتغير يتوافق مع القمع في مشروعك المحلي. على سبيل المثال ، أنت تعمل على spring-cloud-contract . ثم أشر إلى مجلد project-root/src/checkstyle/checkstyle-suppressions.xml . مثال على spring-cloud-contract هو: /home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml .
مهم | تذكر أن تضع Scan Scope على All sources نظرًا لأننا نطبق قواعد الفحص لمصادر الإنتاج والاختبار. |
يجلب SPRING Cloud Build على طول basepom:duplicate-finder-maven-plugin ، والذي يتيح وضع علامة على الطبقات والموارد المكررة والمتضاربة على Java Classpath.
يتم تمكين Franted Finder افتراضيًا وسيتم تشغيله في مرحلة verify من بناء Maven ، ولكنه لن يتم سريانه إلا في مشروعك إذا قمت بإضافة duplicate-finder-maven-plugin إلى قسم build في pom.xml من Projecst.
pom.xml
<build>
<reclosins>
<lection>
<roupl> org.basepom.maven </groupid>
<StifactId> مكرر-فايندر-بلقن-بلوجين </artifactid>
</plugin>
</plugins>
</build>بالنسبة للخصائص الأخرى ، قمنا بتعيين الإعدادات الافتراضية كما هو موضح في وثائق البرنامج المساعد.
يمكنك بسهولة تجاوزها ولكن تعيين قيمة الخاصية المحددة المربوطة باستخدام duplicate-finder-maven-plugin . على سبيل المثال ، قم بتعيين duplicate-finder-maven-plugin.skip إلى true من أجل تخطي التكرارات في فحص البناء الخاص بك.
إذا كنت بحاجة إلى إضافة ignoredClassPatterns أو ignoredResourcePatterns إلى الإعداد الخاص بك ، فتأكد من إضافتها في قسم تكوين البرنامج المساعد في مشروعك:
<build>
<reclosins>
<lection>
<roupl> org.basepom.maven </groupid>
<StifactId> مكرر-فايندر-ميافن-بلوجين </artifactid>
<simpion>
<tradedClassPatterns>
<tradedClassPattern> org.joda.time.base.basedateTime </structedClassPattern>
<tradedClasspattern>
</transuredclasspatterns>
<المتجاهل المقبول>
<tromoredResourCedn> changelog.txt </strupresourcepattern>
</strupresourcepatterns>
</configuration>
</plugin>
</plugins>
</build>