CI/CD-Pipeline für Java: Einrichtung von Grund auf, um keine Angst vor dem Deployment zu haben

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Deployen Sie Ihre Java-Anwendung immer noch per SSH?

\n\n

Wenn Sie jemals ein Java-Projekt manuell in der Produktion eingerichtet haben – mvn clean install, scp auf den Server, Prozess beenden, neu starten – kennen Sie dieses Gefühl: Es funktioniert zwar irgendwie, aber jedes Deployment fühlt sich an wie ein Endgegner-Kampf. Ein vergessenes Flag, eine falsche Java-Version – und die Anwendung stürzt ab, während Sie um 3 Uhr morgens die Nachricht „Server antwortet nicht“ erhalten.

\n\n

Heute schauen wir uns an, wie man einen CI/CD-Pipeline für Java von Grund auf aufbaut. Egal, ob Sie Spring Boot, Micronaut oder das gute alte Java EE verwenden – dieser Pipeline wird Ihre Nerven und Zeit schonen. Wir verwenden Jenkins, Maven, Docker und GitHub. Alles ist real: mit Code, Konfigurationen und Live-Beispielen.

\n\n
\n\n

Was ist CI/CD und warum braucht ein Java-Entwickler das?

\n\n

CI/CD (Continuous Integration / Continuous Delivery) ist nicht nur ein Modewort. Es ist ein Prozess, der Ihren Code von „mal eben schnell geschrieben“ in „läuft stabil auf dem Server“ verwandelt – ohne Ihr Zutun.

\n\n
    \n
  • Continuous Integration – Jeder Ihrer Commits wird automatisch gebaut und getestet. Fallen Tests durch, erfahren Sie das sofort, nicht erst eine Woche später.
  • \n
  • Continuous Delivery – Nach einem erfolgreichen Build wird der Code automatisch auf einem Test- oder Produktionsserver bereitgestellt.
  • \n
\n\n

Für Java ist das besonders wichtig: Build mit Maven/Gradle, Ausführen von Unit-Tests, Integrationstests, Code-Style-Prüfung – all das kann und sollte automatisiert werden. Sonst verschwenden Sie Stunden mit Routine, anstatt neue Features zu schreiben.

\n\n
\n\n

Schritt 1. Umgebungsvorbereitung: Was wir brauchen

\n\n

Bevor wir den Pipeline schreiben, stellen wir sicher, dass wir alle Werkzeuge haben. Für unseren CI/CD-Pipeline für Java benötigen wir:

\n\n
    \n
  • GitHub (oder GitLab/Bitbucket) – Repository mit dem Code.
  • \n
  • Jenkins – Automatisierungsserver. Kann lokal oder auf einer VPS betrieben werden.
  • \n
  • Maven – Build-Tool für das Java-Projekt.
  • \n
  • Docker – Zur Containerisierung der Anwendung.
  • \n
  • Server (oder Cloud) – Wohin wir deployen werden.
  • \n
\n\n

Installieren wir Jenkins auf Ubuntu (wenn Sie ein anderes Betriebssystem haben – kein Problem, das Prinzip ist dasselbe):

\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

Öffnen Sie nach der Installation http://ihr-server:8080 und führen Sie die Ersteinrichtung durch. Vergessen Sie nicht, die Plugins zu installieren: Git, Maven Integration, Docker Pipeline, Blue Ocean (für eine schöne Oberfläche).

\n\n
\n\n

Schritt 2. Ein einfaches Java-Projekt schreiben (Spring Boot)

\n\n

Damit wir etwas zum Üben haben, erstellen wir einen minimalen Spring Boot-Dienst. Wenn Sie bereits ein Projekt haben, überspringen Sie diesen Schritt einfach.

\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

Vergessen Sie nicht die pom.xml mit den Abhängigkeiten. Ein üblicher Spring Boot Starter + Maven Compiler Plugin. Das ist unser Versuchskaninchen.

\n\n
\n\n

Schritt 3. Jenkinsfile erstellen – das Herz des Pipelines

\n\n

Jenkinsfile ist ein deklaratives

Blogs

Buchempfehlungen