هل ما زلت تنشر تطبيق جافا عبر SSH؟
\n\nإذا سبق لك إعداد مشروع جافا في بيئة الإنتاج يدويًا — mvn clean install، وscp إلى الخادم، وقتل العملية، وإعادة التشغيل — فأنت تعرف هذا الشعور: يبدو أن كل شيء يعمل، لكن كل عملية نشر هي مثل مهمة مع زعيم. علم واحد منسي، إصدار جافا خاطئ واحد — ويسقط التطبيق، وتتلقى رسالة "الخادم لا يستجيب" في الساعة 3 صباحًا.
اليوم سنشرح كيفية بناء خط أنابيب CI/CD لجافا من الصفر. لا يهم إذا كنت تستخدم Spring Boot أو Micronaut أو Java EE القديم الجيد — هذا الخط الأنابيب سيوفر أعصابك ووقتك. سنستخدم Jenkins وMaven وDocker وGitHub. كل شيء سيكون حقيقيًا: مع الكود والتكوينات والأمثلة الحية.
\n\n\n\n
ما هو CI/CD ولماذا هو مهم لمطور جافا؟
\n\nCI/CD (التكامل المستمر / التسليم المستمر) — ليس مجرد كلمة عصرية. إنها عملية تحول الكود الخاص بك من "مكتوب على عجل" إلى "يعمل بثبات على الخادم" دون مشاركتك.
\n\n- \n
- التكامل المستمر — كل commit تقوم به يتم بناؤه واختباره تلقائيًا. إذا فشلت الاختبارات — تعرف على الفور، وليس بعد أسبوع. \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
سنقوم بتثبيت Jenkins على Ubuntu (إذا كان لديك نظام تشغيل آخر — لا مشكلة، المبدأ هو نفسه):
\n\nsudo 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
الخطوة 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
الخطوة 3. إنشاء Jenkinsfile — قلب خط الأنابيب
\n\nJenkinsfile — هو ملف