جافا 17
إطار الربيع 6
حذاء الربيع 3
التوجيه الديناميكي
مطابقة المسار مدمجة في رسم خرائط Spring Handler
مطابقة المسار عند طلب HTTP (المسار، الطريقة، الرأس، المضيف، إلخ...)
مرشحات نطاقها لمطابقة الطريق
يمكن للمرشحات تعديل طلب HTTP واستجابة HTTP (إضافة/إزالة الرؤوس، إضافة/إزالة المعلمات، إعادة كتابة المسار، تعيين المسار، Hystrix، إلخ...)
API أو التكوين مدفوعة
يدعم Spring Cloud DiscoveryClient
لتكوين المسارات
التوجيه الذي لم يتم حله في <stdin> - يتضمن::https:///raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/docs/modules/ROOT/partials/building.adoc[]
تم إصدار Spring Cloud بموجب ترخيص Apache 2.0 غير المقيد، ويتبع عملية تطوير Github قياسية للغاية، باستخدام أداة تعقب Github للمشكلات ودمج طلبات السحب في التطبيق الرئيسي. إذا كنت تريد المساهمة ولو بشيء تافه، فلا تتردد، ولكن اتبع الإرشادات أدناه.
قبل أن نقبل أي طلب تصحيح أو سحب غير تافه، سنحتاج منك التوقيع على اتفاقية ترخيص المساهم. إن التوقيع على اتفاقية المساهمين لا يمنح أي شخص حقوقًا ملتزمة بالمستودع الرئيسي، ولكنه يعني أنه يمكننا قبول مساهماتك، وستحصل على رصيد المؤلف إذا فعلنا ذلك. قد يُطلب من المساهمين النشطين الانضمام إلى الفريق الأساسي، ومنحهم القدرة على دمج طلبات السحب.
يلتزم هذا المشروع بمدونة قواعد سلوك ميثاق المساهمين. من خلال المشاركة، يتوقع منك الحفاظ على هذا الرمز. يرجى الإبلاغ عن السلوك غير المقبول إلى [email protected].
لا يعد أي من هذه العناصر ضروريًا لطلب السحب، ولكنها جميعها ستساعد. ويمكن أيضًا إضافتها بعد طلب السحب الأصلي ولكن قبل الدمج.
استخدم اصطلاحات تنسيق رمز Spring Framework. إذا كنت تستخدم Eclipse، فيمكنك استيراد إعدادات المنسق باستخدام ملف eclipse-code-formatter.xml
من مشروع Spring Cloud Build. إذا كنت تستخدم IntelliJ، فيمكنك استخدام Eclipse Code Formatter Plugin لاستيراد نفس الملف.
تأكد من أن جميع ملفات .java
الجديدة تحتوي على تعليق بسيط لفصل Javadoc مع علامة @author
على الأقل تحدد هويتك، ويفضل أن يكون على الأقل فقرة حول الغرض من الفصل.
أضف تعليق رأس ترخيص ASF إلى جميع ملفات .java
الجديدة (نسخة من الملفات الموجودة في المشروع)
أضف نفسك @author
إلى ملفات .java التي تقوم بتعديلها بشكل جوهري (أكثر من مجرد تغييرات تجميلية).
أضف بعض مستندات Javadocs، وإذا قمت بتغيير مساحة الاسم، أضف بعض عناصر مستند XSD.
من شأن بعض اختبارات الوحدات أن تساعد كثيرًا أيضًا - يجب على شخص ما القيام بذلك.
إذا لم يكن هناك أي شخص آخر يستخدم فرعك، فيرجى إعادة مقارنته بالفرع الرئيسي الحالي (أو أي فرع آخر مستهدف في المشروع الرئيسي).
عند كتابة رسالة التزام، يرجى اتباع هذه القواعد، إذا كنت تقوم بإصلاح مشكلة موجودة، فيرجى إضافة Fixes gh-XXXX
في نهاية رسالة الالتزام (حيث XXXX هو رقم الإصدار).
يأتي Spring Cloud Build مع مجموعة من قواعد checkstyle. يمكنك العثور عليها في وحدة spring-cloud-build-tools
. أبرز الملفات ضمن الوحدة هي:
└── سرك ├── نمط الاختيار │ └── checkstyle-suppressions.xml (3) └── رئيسي └── الموارد ├── checkstyle-header.txt (2) └── checkstyle.xml (1)
قواعد Checkstyle الافتراضية
إعداد رأس الملف
قواعد القمع الافتراضية
يتم تعطيل قواعد Checkstyle بشكل افتراضي . لإضافة نمط الاختيار إلى مشروعك، ما عليك سوى تحديد الخصائص والمكونات الإضافية التالية.
<خصائص> <maven-checkstyle-plugin.failsOnError>صحيح</maven-checkstyle-plugin.failsOnError> (1) <maven-checkstyle-plugin.failsOnViolation>صحيح </maven-checkstyle-plugin.failsOnViolation> (2) <maven-checkstyle-plugin.includeTestSourceDirectory>صحيح </maven-checkstyle-plugin.includeTestSourceDirectory> (3) </خصائص> <بناء> <الإضافات> <البرنامج المساعد> (4) <groupId>io.spring.javaformat</groupId> <artifactId>spring-javaformat-maven-plugin</artifactId> </plugin> <البرنامج المساعد> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> </الإضافات> <الإبلاغ> <الإضافات> <البرنامج المساعد> (5) <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> </plugin> </الإضافات> </التقارير> </بناء>
فشل البناء على أخطاء Checkstyle
فشل البناء على انتهاكات Checkstyle
يقوم Checkstyle أيضًا بتحليل مصادر الاختبار
أضف المكوّن الإضافي Spring Java Format الذي سيعيد تنسيق التعليمات البرمجية الخاصة بك لتمرير معظم قواعد تنسيق Checkstyle
قم بإضافة البرنامج المساعد checkstyle إلى مرحلتي الإنشاء وإعداد التقارير
إذا كنت بحاجة إلى منع بعض القواعد (على سبيل المثال، يجب أن يكون طول السطر أطول)، فيكفي أن تحدد ملفًا ضمن ${project.root}/src/checkstyle/checkstyle-suppressions.xml
مع عمليات المنع الخاصة بك. مثال:
<?xml version="1.0"?> <!DOCTYPE عمليات القمع العامة "-//زحف الجرو//قمع DTD 1.1//EN" "https://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> <القمع> <suppress files=".*ConfigServerApplication.java" checks="HideUtilityClassConstructor"/> <suppress files=".*ConfigClientWatch.java" checks="LineLengthCheck"/> </قمع>
يُنصح بنسخ ${spring-cloud-build.rootFolder}/.editorconfig
و ${spring-cloud-build.rootFolder}/.springformat
إلى مشروعك. بهذه الطريقة، سيتم تطبيق بعض قواعد التنسيق الافتراضية. يمكنك القيام بذلك عن طريق تشغيل هذا البرنامج النصي:
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/.editorconfig -o .editorconfig
$ touch .springformat
من أجل إعداد Intellij، يجب عليك استيراد اتفاقيات الترميز وملفات تعريف الفحص وإعداد البرنامج الإضافي checkstyle. يمكن العثور على الملفات التالية في مشروع Spring Cloud Build.
└── سرك ├── نمط الاختيار │ └── checkstyle-suppressions.xml (3) └── رئيسي └── الموارد ├── checkstyle-header.txt (2) ├── checkstyle.xml (1) └── ذكي ├── Intellij_Project_Defaults.xml (4) └── Intellij_Spring_Boot_Java_Conventions.xml (5)
قواعد Checkstyle الافتراضية
إعداد رأس الملف
قواعد القمع الافتراضية
افتراضيات المشروع لـ Intellij التي تطبق معظم قواعد Checkstyle
اصطلاحات نمط المشروع لـ Intellij التي تطبق معظم قواعد Checkstyle
انتقل إلى 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
.
انتقل إلى File
→ Settings
→ Editor
→ Inspections
. هناك انقر على الأيقونة المجاورة لقسم Profile
. هناك، انقر فوق Import Profile
واستورد ملف spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml
.
لكي يعمل Intellij مع Checkstyle، يجب عليك تثبيت البرنامج الإضافي Checkstyle
. يُنصح أيضًا بتثبيت Assertions2Assertj
لتحويل تأكيدات JUnit تلقائيًا
انتقل إلى File
→ Settings
→ Other settings
→ Checkstyle
. انقر هناك على أيقونة +
في قسم Configuration file
. هناك، سيتعين عليك تحديد المكان الذي يجب انتقاء قواعد نمط التحقق منه. في الصورة أعلاه، اخترنا القواعد من مستودع Spring Cloud Build المستنسخ. ومع ذلك، يمكنك الإشارة إلى مستودع GitHub الخاص بـ Spring Cloud Build (على سبيل المثال، checkstyle.xml
: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/spring-cloud-build-tools/src/main/resources/checkstyle.xml
). نحن بحاجة إلى توفير المتغيرات التالية:
checkstyle.header.file
- يرجى توجيهه إلى ملف Spring Cloud Build's، spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
إما في الريبو المستنسخ أو عبر https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/main/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/main/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.
يتم تمكين Duplicate Finder افتراضيًا وسيتم تشغيله في مرحلة verify
من بناء Maven الخاص بك، ولكنه لن يصبح ساري المفعول في مشروعك إلا إذا قمت بإضافة duplicate-finder-maven-plugin
إلى قسم build
في pom.xml
الخاص بالمشروع.
< build >
< plugins >
< plugin >
< groupId >org.basepom.maven</ groupId >
< artifactId >duplicate-finder-maven-plugin</ artifactId >
</ plugin >
</ plugins >
</ build >
بالنسبة للخصائص الأخرى، قمنا بتعيين الإعدادات الافتراضية كما هو مذكور في وثائق البرنامج المساعد.
يمكنك تجاوزها بسهولة ولكن قم بتعيين قيمة الخاصية المحددة مسبوقة بـ duplicate-finder-maven-plugin
. على سبيل المثال، قم بتعيين duplicate-finder-maven-plugin.skip
على true
لتخطي التحقق من التكرارات في الإصدار الخاص بك.
إذا كنت بحاجة إلى إضافة ignoredClassPatterns
أو ignoredResourcePatterns
إلى الإعداد الخاص بك، فتأكد من إضافتها في قسم تكوين البرنامج المساعد لمشروعك:
< build >
< plugins >
< plugin >
< groupId >org.basepom.maven</ groupId >
< artifactId >duplicate-finder-maven-plugin</ artifactId >
< configuration >
< ignoredClassPatterns >
< ignoredClassPattern >org.joda.time.base.BaseDateTime</ ignoredClassPattern >
< ignoredClassPattern >.*module-info</ ignoredClassPattern >
</ ignoredClassPatterns >
< ignoredResourcePatterns >
< ignoredResourcePattern >changelog.txt</ ignoredResourcePattern >
</ ignoredResourcePatterns >
</ configuration >
</ plugin >
</ plugins >
</ build >