Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
spring-cloud__spring-cloud-config_CVE-2020-5405_2-1-6-RELEASE | Kitploit
أدوات/GitHubGitHub/shoucheng3/spring-cloud__spring-cloud-config_cve-2020-5405_2-1-6-release
المصادقة والترخيصأدوات التشفير/فك التشفيرتدقيق التكوينأمن السحابةDevSecOpsأمن واجهات برمجة التطبيقات
GitHubshoucheng3/spring-cloud__spring-cloud-config_cve-2020-5405_2-1-6-release

spring-cloud__spring-cloud-config_CVE-2020-5405_2-1-6-RELEASE

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع
منذ سنة واحدةلم تتم المراجعة بعد

//// لا تقم بتحرير هذا الملف. لقد تم توليده. سيتم فقدان التغييرات اليدوية على هذا الملف عند توليده مرة أخرى. قم بتحرير الملفات في دليل src/main/asciidoc/ بدلاً من ذلك. ////

image::https://circleci.com/gh/spring-cloud/spring-cloud-config/tree/master.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-config/tree/master"] image::https://codecov.io/gh/spring-cloud/spring-cloud-config/branch/master/graph/badge.svg["Codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-config/branch/master"] image::https://api.codacy.com/project/badge/Grade/f064024a072c477e97dca6ed5a70fccd?branch=master["Codacy code quality", link="https://www.codacy.com/app/Spring-Cloud/spring-cloud-config?branch=master&utm_source=github.com&utm_medium=referral&utm_content=spring-cloud/spring-cloud-config&utm_campaign=Badge_Grade"]

يوفر Spring Cloud Config دعماً من جانب الخادم ومن جانب العميل للتهيئة الخارجية في النظام الموزع. باستخدام Config Server، لديك مكان مركزي لإدارة الخصائص الخارجية للتطبيقات عبر جميع البيئات. تتقابل المفاهيم على كل من جانب العميل والخادم تماماً مع تجريدي Spring Environment وPropertySource، لذا فهي تتوافق بشكل كبير مع تطبيقات Spring، ويمكن استخدامها مع أي تطبيق يعمل بأي لغة. عندما ينتقل التطبيق عبر خط أنابيب النشر من التطوير إلى الاختبار ثم إلى الإنتاج، يمكنك إدارة الإعداد بين تلك البيئات وتكون متأكداً من أن التطبيقات لديها كل ما تحتاجه للتشغيل عند ترحيلها. يستخدم التنفيذ الافتراضي للطرف الخلفي لتخزين الخادم نظام git، لذا فهو يدعم بسهولة الإصدارات الموسومة لبيئات الإعداد، فضلاً عن كونه متاحاً لمجموعة واسعة من الأدوات لإدارة المحتوى. من السهل إضافة تطبيقات بديلة وربطها من خلال إعدادات Spring.

== الميزات

=== خادم Spring Cloud Config

يقدم خادم Spring Cloud Config الفوائد التالية:

  • واجهة برمجة تطبيقات قائمة على موارد HTTP للتهيئة الخارجية (أزواج اسم-قيمة أو محتوى YAML مكافئ)
  • تشفير وفك تشفير قيم الخصائص (بشكل متماثل أو غير متماثل)
  • قابلة للتضمين بسهولة في تطبيق Spring Boot باستخدام @EnableConfigServer

=== عميل Spring Cloud Config

خاص بتطبيقات Spring، يتيح لك عميل Spring Cloud Config:

  • الارتباط بخادم الإعداد وتهيئة Spring Environment بمصادر خصائص عن بُعد.
  • تشفير وفك تشفير قيم الخصائص (بشكل متماثل أو غير متماثل).
  • @RefreshScope لـ Spring @Beans التي تريد إعادة تهيئتها عند تغيّر الإعداد.
  • استخدام نقاط نهاية الإدارة: ** /env لتحديث Environment وإعادة ربط @ConfigurationProperties ومستويات السجل. ** /refresh لتحديث حبوب @RefreshScope. ** /restart لإعادة تشغيل سياق Spring (معطّل افتراضياً). ** /pause و/resume لاستدعاء أساليب Lifecycle (stop() وstart() على ).

== بدء سريع

يتناول هذا الدليل السريع استخدام كل من الخادم والعميل في Spring Cloud Config Server.

أولاً، شغّل الخادم كما يلي:


$ cd spring-cloud-config-server $ ../mvnw spring-boot:run

الخادم هو تطبيق Spring Boot، لذا يمكنك تشغيله من بيئة التطوير المتكاملة (IDE) الخاصة بك إذا كنت تفضل ذلك (الفئة الرئيسية هي ConfigServerApplication).

بعد ذلك جرّب عميلاً كما يلي:


$ curl localhost:8888/foo/development {"name":"foo","label":"master","propertySources":[ {"name":"https://github.com/scratches/config-repo/foo-development.properties","source":{"bar":"spam"}}, {"name":"https://github.com/scratches/config-repo/foo.properties","source":{"foo":"bar"}} ]}

الاستراتيجية الافتراضية لتحديد مواقع مصادر الخصائص هي استنساخ مستودع git (على spring.cloud.config.server.git.uri) واستخدامه لتهيئة SpringApplication مصغّر. يُستخدم Environment الخاص بالتطبيق المصغّر لتعداد مصادر الخصائص ونشرها في نقطة نهاية JSON.

توفّر خدمة HTTP موارد بالشكل التالي:


/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties

حيث يتم حقن application كـ spring.config.name في SpringApplication (وهو ما يكون عادةً application في تطبيق Spring Boot عادي)، وprofile هو ملف تعريف نشط (أو قائمة خصائص مفصولة بفواصل)، وlabel هو وسم git اختياري (الافتراضي هو master).

يسحب خادم Spring Cloud Config الإعداد للعملاء البعيدين من مصادر مختلفة. المثال التالي يجلب الإعداد من مستودع git (يجب توفيره)، كما يوضح المثال التالي:

[source,yaml]

spring: cloud: config: server: git: uri: https://github.com/spring-cloud-samples/config-repo

المصادر الأخرى هي أي قاعدة بيانات متوافقة مع JDBC، وSubversion، وHashicorp Vault، وCredhub، وأنظمة الملفات المحلية.

=== الاستخدام من جانب العميل

لاستخدام هذه الميزات في تطبيق، يمكنك بناؤه كتطبيق Spring Boot يعتمد على spring-cloud-config-client (للاطلاع على مثال، راجع حالات الاختبار الخاصة بـ config-client أو التطبيق النموذجي). الطريقة الأكثر ملاءمة لإضافة التبعية هي باستخدام مُشغّل Spring Boot org.springframework.cloud:spring-cloud-starter-config. يتوفر أيضاً pom أصلي وBOM (spring-cloud-starter-parent) لمستخدمي Maven وملف خصائص لإدارة إصدارات Spring IO لمستخدمي Gradle وSpring CLI. يوضح المثال التالي إعداد Maven نموذجياً:

[source,xml,indent=0] .pom.xml

root@kitploit:~
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>{spring-boot-docs-version}</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>{spring-cloud-version}</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-config</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

<build>
	<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
	</plugins>
</build>

<!-- repositories also needed for snapshots and milestones -->

يمكنك الآن إنشاء تطبيق Spring Boot قياسي، مثل خادم HTTP التالي:


@SpringBootApplication @RestController public class Application {

root@kitploit:~
@RequestMapping("/")
public String home() {
    return "Hello World!";
}

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

}

عند تشغيل خادم HTTP هذا، يقوم بالتقاط الإعداد الخارجي من خادم الإعداد المحلي الافتراضي (إذا كان يعمل) على المنفذ 8888. لتعديل سلوك الإقلاع، يمكنك تغيير موقع خادم الإعداد باستخدام bootstrap.properties (مشابه لـ application.properties لكنه مخصص لمرحلة التمهيد في سياق التطبيق)، كما يوضح المثال التالي:


spring.cloud.config.uri: http://myconfigserver.com

افتراضياً، إذا لم يتم تعيين اسم تطبيق، سيتم استخدام application. لتعديل الاسم، يمكن إضافة الخاصية التالية إلى ملف bootstrap.properties:


spring.application.name: myapp

NOTE: عند تعيين الخاصية ${spring.application.name} لا تضع البادئة المحجوزة application- أمام اسم تطبيقك لتجنب مشاكل في تحديد مصدر الخاصية الصحيح.

تظهر خصائص التمهيد في نقطة النهاية /env كمصدر خصائص ذي أولوية عالية، كما يوضح المثال التالي.


$ curl localhost:8080/env { "profiles":[], "configService:https://github.com/spring-cloud-samples/config-repo/bar.properties":{"foo":"bar"}, "servletContextInitParams":{}, "systemProperties":{...}, ... }

مصدر الخصائص المسمى ```configService:/يحتوي على خاصيةfooبقيمةbar` وله الأولوية القصوى.

NOTE: عنوان URL في اسم مصدر الخصائص هو مستودع git، وليس عنوان URL الخاص بخادم الإعداد.

=== التطبيق النموذجي

يمكنك العثور على تطبيق نموذجي https://github.com/spring-cloud/spring-cloud-config/tree/master/spring-cloud-config-sample[هنا]. إنه تطبيق Spring Boot، لذا يمكنك تشغيله باستخدام الآليات المعتادة (على سبيل المثال، mvn spring-boot:run). عند تشغيله، يبحث عن خادم الإعداد على http://localhost:8888 (الافتراضي القابل للتكوين)، لذا يمكنك تشغيل الخادم أيضاً لرؤية كل شيء يعمل معاً.

يحتوي النموذج على حالة اختبار يتم فيها أيضاً تشغيل خادم الإعداد داخل نفس JVM (بمنفذ مختلف)، ويؤكد الاختبار أن خاصية بيئة من مستودع إعداد git موجودة. لتغيير موقع خادم الإعداد، يمكنك تعيين spring.cloud.config.uri في bootstrap.yml (أو في خصائص النظام وأماكن أخرى).

تحتوي حالة الاختبار على أسلوب main() يشغّل الخادم بنفس الطريقة (راقب السجلات لمعرفة منفذه)، لذا يمكنك تشغيل النظام بأكمله في عملية واحدة والتلاعب به (على سبيل المثال، يمكنك تشغيل أسلوب main() في بيئة التطوير المتكاملة الخاصة بك). يستخدم أسلوب main() دليل target/config كدليل عمل لمستودع git، لذا يمكنك إجراء تغييرات محلية هناك ورؤيتها تنعكس على التطبيق قيد التشغيل. يوضح المثال التالي جلسة تجريب على حالة الاختبار:


$ curl localhost:8080/env/sample mytest $ vi target/config/mytest.properties .. change value of "sample", optionally commit $ curl localhost:8080/refresh ["sample"] $ curl localhost:8080/env/sample sampleValue

يُبلغ نقطة نهاية التحديث أن خاصية "sample" قد تغيّرت.

== البناء

:jdkversion: 1.7

=== الترجمة والاختبار الأساسيان

لبناء المصدر، ستحتاج إلى تثبيت JDK {jdkversion}.

يستخدم Spring Cloud أداة Maven لمعظم الأنشطة المتعلقة بالبناء، ويجب أن تتمكن من الانطلاق بسرعة كبيرة عن طريق استنساخ المشروع الذي يهمك وكتابة


$ ./mvnw install

NOTE: يمكنك أيضاً تثبيت Maven (>=3.3.3) بنفسك وتشغيل الأمر mvn بدلاً من ./mvnw في الأمثلة أدناه. إذا قمت بذلك، فقد تحتاج أيضاً إلى إضافة -P spring إذا كانت إعدادات Maven المحلية لديك لا تحتوي على تعريفات مستودعات لملفات spring الأولية للإصدار.

NOTE: انتبه إلى أنك قد تحتاج إلى زيادة مقدار الذاكرة المتاحة لـ Maven عن طريق تعيين متغير بيئة MAVEN_OPTS بقيمة مثل -Xmx512m -XX:MaxPermSize=128m. نحاول تغطية ذلك في إعداد .mvn، لذا إذا وجدت أنه يتعين عليك القيام بذلك لإنجاح البناء، فيرجى فتح تذكرة لإضافة الإعدادات إلى التحكم بالمصدر.

للحصول على تلميحات حول كيفية بناء المشروع، اطلع على .travis.yml إذا كان موجوداً. يجب أن يكون هناك أمر "script" وربما أمر "install". انظر أيضاً إلى قسم "services" لمعرفة ما إذا كانت هناك أي خدمات تحتاج إلى التشغيل محلياً (مثل mongo أو rabbit). تجاهل الأجزاء المتعلقة بـ git التي قد تجدها في "before_install" لأنها مرتبطة بتعيين بيانات اعتماد git وأنت تمتلكها بالفعل.

تتضمن المشاريع التي تتطلب برمجيات وسيطة عادةً ملف docker-compose.yml، لذا فكّر في استخدام https://docs.docker.com/compose/[Docker Compose] لتشغيل خوادم البرمجيات الوسيطة في حاويات Docker. راجع ملف README في https://github.com/spring-cloud-samples/scripts[مستودع scripts التجريبي] للحصول على تعليمات محددة حول الحالات الشائعة لـ mongo وrabbit وredis.

NOTE: إذا فشل كل شيء آخر، قم بالبناء باستخدام الأمر من .travis.yml (عادةً ./mvnw install).

=== التوثيق

تحتوي وحدة spring-cloud-build على ملف تعريف "docs"، وإذا قمت بتفعيله، فسيحاول بناء مصادر asciidoc من src/main/asciidoc. وكجزء من هذه العملية، سيبحث عن ملف README.adoc ويعالجه عن طريق تحميل جميع ملفات التضمين، دون تحليلها أو عرضها، فقط ينسخه إلى ${main.basedir} (الافتراضي هو ${basedir}، أي جذر المشروع). إذا كانت هناك أي تغييرات في ملف README، فستظهر بعد بناء Maven كملف معدَّل في المكان الصحيح. فقط قم بعمل commit وادفع التغيير.

=== العمل مع الكود إذا لم يكن لديك تفضيل لبيئة تطوير متكاملة معينة، ننصحك باستخدام https://www.springsource.com/developer/sts[Spring Tools Suite] أو https://eclipse.org[Eclipse] عند العمل مع الكود. نستخدم إضافة https://eclipse.org/m2e/[m2eclipse] eclipse لدعم Maven. يجب أن تعمل بيئات التطوير والأدوات الأخرى أيضاً دون مشاكل طالما أنها تستخدم Maven 3.3.3 أو أحدث.

==== الاستيراد إلى eclipse باستخدام m2eclipse نوصي بإضافة eclipse https://eclipse.org/m2e/[m2eclipse] عند العمل مع eclipse. إذا لم يكن m2eclipse مثبتاً لديك بالفعل، فهو متوفر من "eclipse marketplace".

NOTE: لا تدعم الإصدارات الأقدم من m2e Maven 3.3، لذا بمجرد استيراد المشاريع إلى Eclipse، ستحتاج أيضاً إلى إخبار m2eclipse باستخدام ملف التعريف الصحيح للمشاريع. إذا رأيت العديد من الأخطاء المختلفة المتعلقة بملفات POM في المشاريع، فتأكد من أن لديك تثبيتاً محدثاً. إذا لم تستطع ترقية m2e، أضف ملف التعريف "spring" إلى settings.xml الخاص بك. بدلاً من ذلك يمكنك نسخ إعدادات المستودع من ملف التعريف "spring" في pom الأصلي إلى settings.xml الخاص بك.

==== الاستيراد إلى eclipse بدون m2eclipse إذا كنت تفضل عدم استخدام m2eclipse، يمكنك توليد بيانات تعريف مشروع eclipse باستخدام الأمر التالي:

[indent=0]

root@kitploit:~
$ ./mvnw eclipse:eclipse

يمكن استيراد مشاريع eclipse المولدة عن طريق تحديد import existing projects من قائمة file.

=== JCE

إذا حصلت على استثناء بسبب "Illegal key size" وكنت تستخدم JDK من Sun، فستحتاج إلى تثبيت ملفات Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy. راجع الروابط التالية للحصول على مزيد من المعلومات:

https://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html[Java 6 JCE]

https://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html[Java 7 JCE]

https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html[Java 8 JCE]

استخرج ملفات JCE إلى مجلد JDK/jre/lib/security لأي إصدار من JRE/JDK x64/x86 تستخدمه.

== المساهمة

:spring-cloud-build-branch: master

يتم إصدار Spring Cloud بموجب ترخيص Apache 2.0 غير التقييدي، ويتبع عملية تطوير Github قياسية للغاية، باستخدام متتبع Github للمشكلات ودمج طلبات السحب في master. إذا كنت تريد المساهمة حتى بشيء بسيط، فلا تتردد، ولكن اتبع الإرشادات أدناه.

=== التوقيع على اتفاقية ترخيص المساهم قبل قبول تصحيح أو طلب سحب غير بسيط، سنحتاج منك التوقيع على https://cla.pivotal.io/sign/spring[اتفاقية ترخيص المساهم]. لا يمنح التوقيع على اتفاقية المساهم أي شخص حقوق الالتزام في المستودع الرئيسي، ولكنه يعني أننا نستطيع قبول مساهماتك، وستحصل على إشادة ككاتب إذا قبلناها. قد يُطلب من المساهمين النشطين الانضمام إلى الفريق الأساسي، ومنحهم القدرة على دمج طلبات السحب.

=== مدونة قواعد السلوك يلتزم هذا المشروع بمدونة قواعد السلوك الخاصة بـ Contributor Covenant https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[code of conduct]. بالمشاركة، يُتوقع منك الالتزام بهذه المدونة. يرجى الإبلاغ عن السلوك غير المقبول إلى [email protected].

=== اصطلاحات الكود والأعمال المنزلية لا شيء من هذه الأمور ضروري لطلب السحب، لكنها جميعاً ستساعد. يمكن أيضاً إضافتها بعد طلب السحب الأصلي وقبل الدمج.

  • استخدام اصطلاحات تنسيق الكود في Spring Framework. إذا كنت تستخدم Eclipse يمكنك استيراد إعدادات المنسق باستخدام ملف eclipse-code-formatter.xml من مشروع https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring Cloud Build]. إذا كنت تستخدم IntelliJ، يمكنك استخدام https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter Plugin] لاستيراد نفس الملف.
  • التأكد من أن جميع ملفات .java الجديدة تحتوي على تعليق Javadoc بسيط للفئة يتضمن على الأقل وسم @author يعرّفك، ويفضل أن يتضمن فقرة على الأقل حول الغرض من الفئة.
  • إضافة تعليق رأس ترخيص ASF إلى جميع ملفات .java الجديدة (انسخ من الملفات الموجودة في المشروع).
  • إضافة نفسك كـ @author في ملفات .java التي تعدّلها بشكل جوهري (أكثر من تغييرات تجميلية).
  • إضافة بعض مستندات Javadoc، وإذا غيّرت مساحة الاسم، بعض عناصر توثيق XSD.
  • بعض اختبارات الوحدة ستساعد كثيراً أيضاً -- يجب على شخص ما القيام بها.
  • إذا لم يكن أي شخص آخر يستخدم فرعك، فيرجى إعادة تأسيسه (rebase) على master الحالية (أو فرع الهدف الآخر في المشروع الرئيسي).
  • عند كتابة رسالة commit، يرجى اتباع https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[هذه الاصطلاحات]، إذا كنت تصلح مشكلة قائمة، فيرجى إضافة Fixes gh-XXXX في نهاية رسالة commit (حيث XXXX هو رقم المشكلة).

=== Checkstyle

يأتي Spring Cloud Build مع مجموعة من قواعد checkstyle. يمكنك العثور عليها في وحدة spring-cloud-build-tools. أبرز الملفات ضمن الوحدة هي:

.spring-cloud-build-tools/

└── src    ├── checkstyle    │   └── checkstyle-suppressions.xml <3>    └── main    └── resources    ├── checkstyle-header.txt <2>    └── checkstyle.xml <1>

<1> قواعد Checkstyle الافتراضية <2> إعداد رأس الملف <3> قواعد الكبت الافتراضية

==== إعداد Checkstyle

قواعد Checkstyle معطّلة افتراضياً. لإضافة checkstyle إلى مشروعك، ما عليك سوى تعريف الخصائص والإضافات التالية.

.pom.xml

true <1> true <2> true <3> <4> io.spring.javaformat spring-javaformat-maven-plugin <5> org.apache.maven.plugins maven-checkstyle-plugin
root@kitploit:~
<reporting>
    <plugins>
        <plugin> <5>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
        </plugin>
    </plugins>
</reporting>
---- <1> يفشل البناء عند وجود أخطاء Checkstyle <2> يفشل البناء عند وجود مخالفات Checkstyle <3> يحلل Checkstyle أيضاً مصادر الاختبار <4> أضف إضافة Spring Java Format التي ستعيد تنسيق كودك لاجتياز معظم قواعد تنسيق Checkstyle <5> أضف إضافة checkstyle إلى مراحل البناء وإعداد التقارير لديك

إذا كنت بحاجة إلى كبت بعض القواعد (مثل أن يكون طول السطر أطول)، فيكفي أن تعرّف ملفاً تحت ${project.root}/src/checkstyle/checkstyle-suppressions.xml مع حالات الكبت الخاصة بك. مثال:.projectRoot/src/checkstyle/checkstyle-suppresions.xml

----

يُفضَّل نسخ ${spring-cloud-build.rootFolder}/.editorconfig و${spring-cloud-build.rootFolder}/.springformat إلى مشروعك. وبهذه الطريقة، سيتم تطبيق بعض قواعد التنسيق الافتراضية. يمكنك القيام بذلك عن طريق تشغيل هذا السكربت:```bash $ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/.editorconfig -o .editorconfig $ touch .springformat

root@kitploit:~
=== إعداد بيئة التطوير

==== Intellij IDEA

من أجل إعداد Intellij، يجب عليك استيراد اصطلاحات الترميز الخاصة بنا وملفات تعريف الفحص وإعداد إضافة Checkstyle. يمكن العثور على الملفات التالية في مشروع https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools[Spring Cloud Build].

.spring-cloud-build-tools/
----
└── src
    ├── checkstyle
    │   └── checkstyle-suppressions.xml <3>
    └── main
        └── resources
            ├── checkstyle-header.txt <2>
            ├── checkstyle.xml <1>
            └── intellij
                ├── Intellij_Project_Defaults.xml <4>
                └── Intellij_Spring_Boot_Java_Conventions.xml <5>
----
<1> قواعد Checkstyle الافتراضية
<2> إعداد رأس الملف
<3> قواعد الاستثناء الافتراضية
<4> الإعدادات الافتراضية لمشروع Intellij التي تطبّق معظم قواعد Checkstyle
<5> اصطلاحات أسلوب مشروع Intellij التي تطبّق معظم قواعد Checkstyle

.أسلوب الكود

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-code-style.png[أسلوب الكود]

انتقل إلى `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`.

.ملفات تعريف الفحص

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-inspections.png[أسلوب الكود]

انتقل إلى `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 تلقائيًا.

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-checkstyle.png[Checkstyle]

انتقل إلى `File` -> `Settings` -> `Other settings` -> `Checkstyle`. ثم انقر على أيقونة `+` في قسم `Configuration file`. بعد ذلك، ستحتاج إلى تحديد مصدر قواعد Checkstyle. في الصورة أعلاه، اخترنا القواعد من مستودع Spring Cloud Build المستنسخ. ومع ذلك، يمكنك الإشارة إلى مستودع Spring Cloud Build على GitHub (على سبيل المثال، بالنسبة إلى `checkstyle.xml`: `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml`). نحتاج إلى توفير المتغيرات التالية:

- `checkstyle.header.file` - يرجى توجيهه إلى ملف Spring Cloud Build، `spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` سواء في مستودعك المستنسخ أو عبر عنوان URL `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt`.
- `checkstyle.suppressions.file` - الاستثناءات الافتراضية. يرجى توجيهه إلى ملف Spring Cloud Build، `spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` سواء في مستودعك المستنسخ أو عبر عنوان URL `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml`.
- `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` لأننا نطبّق قواعد Checkstyle على مصادر الإنتاج والاختبار.
تنزيل الأداة
ApplicationContext
  • سياق تطبيق التمهيد (Bootstrap): سياق أصلي للتطبيق الرئيسي يمكن تدريبه للقيام بأي شيء (افتراضياً، يرتبط بخادم الإعداد ويفك تشفير قيم الخصائص).