Soruyu nasıl güzel şekilde cevaplayayım diye ararken denk geldim ve bayağı şaşırdım. Maven Yidiş dilinde "accumulator of knowledge" (Bilgi toplayan gibi bir anlamı oluyor) demekmiş.
Genel olarak proje, pağımlılık yönetim ve otomatizasyon sistemi olarak açıklanır. POM (proje obje modeli) üzerine kurulmuş bir yapıymış. Bizim pratikte bilmemiz gereken şey maven projesi için .pom uzantılı dosyayı oluşturmamız ve ayarlarını bu dosyada yapmamız gerekir. Yani merkezi pom oluyor.
Neler yapabileceğimize bakarsak
-Gerekli jar dosyalarının bulunup indirilmesi.
-Derleme işlemlerinin otomatize ediyoruz. Java sürümü, proje dosyaları, klasörleri belirlenmesi.
-Derleme öncesi test çalıştırılması/çalıştırılmaması
-Uygulamanın bir adres üzerine deploy ( yükleme) yapılması.
-Kod üretilmesi işlemlerinin (web servisler gibi) otomatize edilmesi.
vs. vs.
Aslında pluginlerine bakarsak bir sürü iş yapabiliyoruz. Temel kullanım amacımız jar dosyalarını proje içine tek tek bulup eklemeden birkaç satırlık xml koduyla kendiliğinden indirilip classpath içinde otomatik görülmesi diyebiliriz.