Spring Boot Projesinden JAR ve WAR Dosyası Nasıl Oluşturulur?

İngilizce'ye Geç
Kısa Özet: Spring Boot JAR ve WAR Nasıl Oluşturulur?

Spring Boot projelerinde bağımsız çalışan bir JAR oluşturmak için terminalde mvn clean install komutunu çalıştırmanız yeterlidir. Uygulamayı harici bir Tomcat sunucusuna deploy edilecek bir WAR dosyasına dönüştürmek için ise pom.xml dosyasına <packaging>war</packaging> etiketini eklemeli ve spring-boot-starter-tomcat bağımlılığını "provided" olarak işaretledikten sonra Maven build işlemini başlatmalısınız.

Geliştirme sürecini tamamladığınız Spring Boot projesinden deploy edilebilir JAR veya WAR dosyası oluşturmak (Build almak), uygulamayı DevOps ekibine teslim etmek veya production (canlı) sunucusuna yüklemek için atılması gereken ilk adımdır.

Öneri: Eğer uygulamanızı veritabanına bağlama aşamasındaysanız, build almadan önce Spring Boot CRUD: Veri Okuma ve Listeleme rehberimizi inceleyerek projenizin eksiksiz olduğundan emin olabilirsiniz.

1. Spring Boot Standalone (Bağımsız) Yapısı

Eski Java EE projelerinde, yazdığınız kodu çalıştırabilmek için sunucuya önceden Tomcat veya GlassFish gibi bir uygulama sunucusu (Application Server) kurmanız ve kodunuzu (WAR) bunun içine atmanız gerekirdi.

Spring Boot, "Embedded Server" (Gömülü Sunucu) mantığıyla gelir. Uygulamanızı derlediğinizde, Tomcat sunucusu uygulamanın içine paketlenir. Bu sayede hiçbir ek sunucu kurmadan sadece java -jar uygulama.jar komutuyla projenizi her ortamda çalıştırabilirsiniz.

2. Terminalden JAR Dosyası Oluşturma (Maven)

Tamamlanmış bir Spring Boot projesinden (varsayılan paketleme türü olan) JAR dosyası oluşturmak son derece basittir. Projenizin kök dizininde (pom.xml dosyasının bulunduğu yer) terminali açın ve aşağıdaki komutu çalıştırın:

mvn clean install

Eğer bilgisayarınızda Maven kurulu değilse, Spring Boot'un kendi sarmalayıcısını kullanabilirsiniz: ./mvnw clean install (Mac/Linux) veya mvnw.cmd clean install (Windows).

Bu komut çalıştıktan sonra Maven testleri koşar, projeyi derler ve target klasörünün içinde projeadi-0.0.1-SNAPSHOT.jar isimli çalıştırılabilir bir dosya oluşturur.

3. IntelliJ IDEA ve Eclipse ile Build Alma

Eğer terminal kullanmak istemiyorsanız, IDE'nizin arayüzünden tek tıkla build alabilirsiniz.

IntelliJ IDEA ile JAR Oluşturma

Sağ barda bulunan Maven sekmesini açın. Projenizin altındaki Lifecycle menüsünü genişletin. Önce clean, ardından install seçeneklerine çift tıklayın. (Veya direkt install'a tıklayabilirsiniz).

IntelliJ IDEA Maven Lifecycle menüsünden install ile jar build alma

Eclipse ile JAR Oluşturma

Sol menüdeki Project Explorer üzerinden proje adınıza sağ tıklayın. Run AsMaven install yolunu izleyerek derleme işlemini başlatın. Konsolda "BUILD SUCCESS" yazısını gördükten sonra projeye sağ tıklayıp "Refresh" diyerek target/ klasörünün içindeki JAR dosyanızı görebilirsiniz.

Eclipse IDE Run As Maven install işlemi ekran görüntüsü

4. Spring Boot WAR Dosyası Nasıl Oluşturulur?

Eğer uygulamanızı Docker yerine şirketinize ait geleneksel (harici) bir Tomcat, WebLogic veya JBoss sunucusuna (Application Server) deploy etmeniz gerekiyorsa, WAR dosyası üretmeniz şarttır.

Adım 1: Packaging Türünü Değiştirin

pom.xml dosyanızı açın ve proje bilgilerinin hemen altına şu satırı ekleyin:

<packaging>war</packaging>
pom.xml dosyasında packaging war etiketinin kullanımı

Adım 2: Gömülü (Embedded) Tomcat'i Devre Dışı Bırakın

🚨 Çok Önemli: Spring Boot varsayılan olarak Tomcat ile gelir. Bunu harici bir sunucuya attığınızda iki sunucu çakışır (Conflict). Çakışmayı önlemek için pom.xml içindeki tomcat bağımlılığını "provided" (sunucu tarafından sağlanacak) olarak işaretlemelisiniz.
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

Adım 3: SpringBootServletInitializer Kullanımı

Ana sınıfınızın (Main Class) dış sunucular tarafından tanınabilmesi için SpringBootServletInitializer sınıfını extends etmesi ve configure metodunu ezmesi gerekir:

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MyApplication.class);
    }

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

Bu 3 adımı tamamladıktan sonra tekrar mvn clean install komutunu çalıştırarak target/ klasörü altında WAR dosyanızı alabilirsiniz.

5. JAR ve WAR Arasındaki Fark Nedir?

Özellik JAR (Java ARchive) WAR (Web Application ARchive)
İçerik Derlenmiş Java sınıfları ve gömülü sunucu. Web sayfaları (JSP, HTML), statik dosyalar ve Java sınıfları.
Gömülü (Embedded) Sunucu Evet (Tomcat, Jetty vs. paketin içindedir). Hayır (Harici bir sunucuya bağımlıdır).
Çalıştırma Biçimi Terminalden java -jar uygulama.jar komutuyla. Tomcat veya JBoss'un webapps klasörüne atılarak.
Kullanım Senaryosu (Trend) Docker, Microservice mimarileri ve Cloud. Geleneksel Application Server ve Legacy mimariler.

6. Sık Sorulan Sorular

Oluşan JAR veya WAR dosyası nerede bulunur?

Her iki çıktı dosyası da Maven build (derleme) işleminden sonra projenizin ana dizinindeki target/ klasörü altında oluşur. Dosya ismi genellikle projeadi-0.0.1-SNAPSHOT.jar formatındadır.

Mevcut projelerde JAR mı WAR mı tercih edilmeli?

Modern yazılım geliştirme süreçlerinde (Docker konteynerleri, Kubernetes ve Microservice mimarilerinde) her zaman JAR dosyası tercih edilir. WAR dosyaları daha çok eski sistemlere bağımlı kurumsal (enterprise) projelerde kullanılır.

Sonuç

Bu yazıda Spring Boot projelerinden JAR ve WAR dosyası oluşturma süreçlerini eksiksiz bir şekilde ele aldık. Maven terminal komutlarını kullanmayı, IDE üzerinden arayüzle derleme yapmayı ve WAR çıktısı alırken çakışmaları önlemek için Tomcat bağımlılığını (provided) ayarlamayı öğrendiniz.

Etiketler: spring boot jar, spring boot war, maven build, java deployment, tomcat

Son Güncelleme: 2026

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Güncel yazılım teknolojilerinin takip edildiği blog.

Spring Boot ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *