خط أنابيب CI/CD لجافا: الإعداد من الصفر لتجنب الخوف من النشر

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

هل ما زلت تنشر تطبيق جافا عبر SSH؟

\n\n

إذا سبق لك إعداد مشروع جافا في بيئة الإنتاج يدويًا — mvn clean install، وscp إلى الخادم، وقتل العملية، وإعادة التشغيل — فأنت تعرف هذا الشعور: يبدو أن كل شيء يعمل، لكن كل عملية نشر هي مثل مهمة مع زعيم. علم واحد منسي، إصدار جافا خاطئ واحد — ويسقط التطبيق، وتتلقى رسالة "الخادم لا يستجيب" في الساعة 3 صباحًا.

\n\n

اليوم سنشرح كيفية بناء خط أنابيب CI/CD لجافا من الصفر. لا يهم إذا كنت تستخدم Spring Boot أو Micronaut أو Java EE القديم الجيد — هذا الخط الأنابيب سيوفر أعصابك ووقتك. سنستخدم Jenkins وMaven وDocker وGitHub. كل شيء سيكون حقيقيًا: مع الكود والتكوينات والأمثلة الحية.

\n\n
\n\n

ما هو CI/CD ولماذا هو مهم لمطور جافا؟

\n\n

CI/CD (التكامل المستمر / التسليم المستمر) — ليس مجرد كلمة عصرية. إنها عملية تحول الكود الخاص بك من "مكتوب على عجل" إلى "يعمل بثبات على الخادم" دون مشاركتك.

\n\n
    \n
  • التكامل المستمر — كل commit تقوم به يتم بناؤه واختباره تلقائيًا. إذا فشلت الاختبارات — تعرف على الفور، وليس بعد أسبوع.
  • \n
  • التسليم المستمر — بعد البناء الناجح، يتم نشر الكود تلقائيًا على خادم الاختبار أو الإنتاج.
  • \n
\n\n

بالنسبة لجافا، هذا مهم بشكل خاص: البناء عبر Maven/Gradle، تشغيل اختبارات الوحدة، اختبارات التكامل، التحقق من نمط الكود — كل هذا يمكن ويجب أتمتته. وإلا ستضيع ساعات في الروتين بدلاً من كتابة الميزات.

\n\n
\n\n

الخطوة 1. إعداد البيئة: ما سنحتاجه

\n\n

قبل كتابة خط الأنابيب، دعنا نتأكد من أن لدينا جميع الأدوات. لـ خط أنابيب CI/CD لجافا سنحتاج إلى:

\n\n
    \n
  • GitHub (أو GitLab/Bitbucket) — مستودع الكود.
  • \n
  • Jenkins — خادم الأتمتة. يمكن تشغيله محليًا أو على VPS.
  • \n
  • Maven — أداة بناء مشروع جافا.
  • \n
  • Docker — لحاويات التطبيق.
  • \n
  • خادم (أو سحابة) — حيث سنقوم بالنشر.
  • \n
\n\n

سنقوم بتثبيت Jenkins على Ubuntu (إذا كان لديك نظام تشغيل آخر — لا مشكلة، المبدأ هو نفسه):

\n\n
sudo apt update\nsudo apt install openjdk-11-jdk\nwget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -\nsudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'\nsudo apt update\nsudo apt install jenkins\nsudo systemctl start jenkins\n
\n\n

بعد التثبيت، افتح http://your-server:8080 وقم بالإعداد الأولي. لا تنس تثبيت الإضافات: Git, Maven Integration, Docker Pipeline, Blue Ocean (لواجهة جميلة).

\n\n
\n\n

الخطوة 2. كتابة مشروع جافا بسيط (Spring Boot)

\n\n

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

\n\n
// Main.java\npackage com.example.demo;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\n@SpringBootApplication\n@RestController\npublic class DemoApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(DemoApplication.class, args);\n    }\n\n    @GetMapping("/")\n    public String hello() {\n        return "Hello from CI/CD pipeline!";\n    }\n}\n
\n\n

لا تنس pom.xml مع التبعيات. Spring Boot starter عادي + إضافة Maven compiler plugin. هذا هو فأر التجارب لدينا.

\n\n
\n\n

الخطوة 3. إنشاء Jenkinsfile — قلب خط الأنابيب

\n\n

Jenkinsfile — هو ملف

المدونات

توصيات الكتب