Jenkins ve Maven ile Otomatik WAR/JAR Dosyası Oluşturma
Jenkins ve Maven ile Otomatik WAR/JAR Dosyası Oluşturma (Adım Adım CI/CD)
Jenkins kullanarak otomatik bir WAR veya JAR dosyası oluşturmak için; 1) Jenkins'e Maven Integration ve Git eklentileri kurulur. 2) Global Tool Configuration kısmından JDK, Git ve Maven yolları (path) tanımlanır. 3) Yeni bir "Maven Project" oluşturulup kaynak kodun bulunduğu Git Repository (Örn: GitHub/GitLab) URL'si girilir. 4) Build kısmında Goals and options alanına clean package yazılarak proje derlenir (build edilir) ve target klasörü altında dağıtıma hazır WAR/JAR dosyası otomatik olarak elde edilir.
Modern yazılım geliştirme süreçlerinde, kodun manuel olarak derlenip sunucuya atılması büyük zaman kayıplarına ve insan hatalarına yol açar. Sürekli Entegrasyon ve Sürekli Dağıtım (CI/CD) süreçlerinin kalbi olan Jenkins, kodunuzu uzak depodan çeker, Maven ile derler ve canlı ortama aktarır. Bu rehberde, bir Java projesinin Jenkins, Git ve Maven üçlüsü kullanılarak nasıl otomatik olarak .war veya .jar dosyasına dönüştürüleceğini adım adım öğreneceğiz.
1. Jenkins Kurulumu ve Global Tool Ayarları
Öncelikle Jenkins paneline (genellikle http://localhost:8080 veya sunucu IP'niz) yönetici girişi yapın. Jenkins'in kodunuzu derleyebilmesi için bilgisayarınızdaki (veya sunucunuzdaki) araçların nerede kurulu olduğunu bilmesi gerekir.
Menüden Manage Jenkins > Global Tool Configuration (veya yeni adıyla Tools) bölümüne gidin. Burada sırasıyla JDK (Java), Git ve Maven için kurulum dizinlerini (Örn: JAVA_HOME) tanımlayın veya "Install automatically" (Otomatik kur) seçeneğini işaretleyin.
2. Sistemde Java, Git ve Maven Kontrolü
Jenkins'in bu araçları sorunsuz kullanabilmesi için, kurulu oldukları sunucuda komut satırından erişilebilir olmaları gerekir. Sunucu terminalinizde şu komutları çalıştırarak versiyonları doğrulayın:
# Java versiyon kontrolü
java -version
# Git versiyon kontrolü
git --version
# Maven versiyon kontrolü
mvn -v
Command not found hatası alırsanız, ilgili aracı işletim sisteminize kurmalı (Örn: sudo apt install maven) veya sistem Path ortam değişkenlerine eklemelisiniz.
3. Gerekli Jenkins Plugin'lerinin Kurulumu
Varsayılan Jenkins kurulumunda bir Java projesini derlemek için gerekli olan bazı Maven özellikleri eksik olabilir. Bu yüzden Manage Jenkins > Manage Plugins > Available sekmesine giderek şu eklentileri aratıp yükleyin:
- Maven Integration Plugin: "New Item" dediğinizde "Maven Project" seçeneğinin çıkmasını sağlar.
- Deploy to Container Plugin: (Opsiyonel) Üretilen WAR dosyasını otomatik olarak Tomcat sunucusuna göndermek isterseniz gereklidir.
4. Yeni Bir Maven Projesi (Job) Oluşturma
Ana sayfadan New Item (Yeni Öğe) seçeneğine tıklayın. Projenize açıklayıcı bir isim verin (Örn: E-Ticaret-Backend-Build), ardından listeden Maven Project seçeneğini işaretleyip OK butonuna basın.
5. Git Entegrasyonu ve Credentials
Açılan yapılandırma sayfasında, Source Code Management (Kaynak Kodu Yönetimi) bölümüne gidin ve Git'i seçin.
- Repository URL: Projenizin GitHub veya GitLab HTTPS/SSH linkini yapıştırın.
- Credentials: Eğer deponuz gizli (Private) ise, Jenkins'in kodu indirebilmesi için buraya Git kullanıcı adınızı ve şifrenizi (veya Personal Access Token) ekleyin.
- Branches to build: Hangi dalın derleneceğini belirtin (Genellikle
*/mainveya*/master).
6. Maven Build (Package) Ayarları
Projenin kaynak kodunu çektik, şimdi sıra onu derlemekte. Konfigürasyon sayfasında aşağı inerek Build sekmesini bulun.
Root POM: pom.xml (Eğer dosyanız ana dizindeyse böyle kalmalı).
Goals and options: Buraya Maven'ın hangi işlemi yapacağını yazın. En yaygın kullanılan komut clean package'dır. Bu komut eski derlemeleri temizler ve kodu yeniden derleyerek paketler.
JAR yerine WAR Üretmek
Eğer uygulamanızın bir JAR değil de Tomcat'te çalışacak bir WAR dosyası olarak çıkmasını istiyorsanız, kodunuzdaki pom.xml dosyasının içinde packaging etiketinin war olduğundan emin olun:
<!-- pom.xml dosyası içinde -->
<groupId>com.ornek</groupId>
<artifactId>projem</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
7. Build İşlemi ve Log Takibi
Tüm ayarları kaydedin. Projenizin ana ekranına yönlendirileceksiniz. Sol menüden Build Now (Şimdi Derle) butonuna tıklayın. Sol alt köşede "Build History" altında işlemin başladığını göreceksiniz.
Çalışan numaranın üzerine tıklayıp Console Output (Konsol Çıktısı) sekmesine giderek Maven'ın bağımlılıkları indirişini ve kodu derlemesini canlı olarak izleyebilirsiniz. En altta BUILD SUCCESS yazısını gördüyseniz tebrikler!
Oluşan WAR veya JAR dosyanız varsayılan olarak şu Jenkins çalışma dizininde (Workspace) bulunacaktır:
/var/lib/jenkins/workspace/proje-adiniz/target/projeniz.war
8. Sık Sorulan Sorular (SSS)
Jenkins'te "New Item" menüsünde "Maven Project" seçeneği neden yok?
Çünkü "Maven Integration Plugin" eklentisi henüz Jenkins'e yüklenmemiştir. Manage Jenkins > Manage Plugins yolunu izleyerek bu eklentiyi yükleyip Jenkins'i yeniden başlatmalısınız.
"Couldn't find any revision to build" hatası neden çıkar?
Bu hata, Jenkins'in belirttiğiniz Git Repository adresinden veya belirttiğiniz Branch'ten (Dal) kodu çekemediği anlamına gelir. Genellikle branch adının yanlış yazılmasından (Örn: master yerine main) veya Private depolara erişim için Credentials (şifre/token) eklenmemesinden kaynaklanır.
Oluşan WAR dosyasını otomatik olarak Tomcat'e nasıl gönderirim?
Post-build Actions sekmesinden "Deploy war/ear to a container" seçeneğini ekleyip, Tomcat sunucunuzun IP adresini ve Manager kimlik bilgilerini girerek bu süreci tamamen otomatize edebilirsiniz (Continuous Deployment).
Sonuç
Bu rehberde, Jenkins, Git ve Maven kullanarak bir Java projesinin WAR veya JAR formatında nasıl otomatik olarak derleneceğini (Build) öğrendik. Bu kurulum, sağlam bir CI/CD (Sürekli Entegrasyon) boru hattının ilk ve en önemli adımıdır. Kodunuzu otomatik derlemek, sizi "benim bilgisayarımda çalışıyordu" mazeretlerinden ve manuel işlem hatalarından kalıcı olarak kurtaracaktır.