Maven kullanırken artifact ve repository kelimeleri geçiyor. Bunlar nelerdir? Nerede ve nasıl kullanırım?
comments
2 references
// Comments are closed.
Maven kullanırken artifact ve repository kelimeleri geçiyor. Bunlar nelerdir? Nerede ve nasıl kullanırım?
// Comments are closed.
Repository
Maven repositorysi projelerin ihtiyacı olan jar dosyalarını ve bu dosyalar ile ilgili verilerin saklandığı özel bir depolama alanıdır. Maven projelerin bağımlı oldukları kütüphaneleri bu depolama sistemi aracılığı ile yönetir.
Bir bilgisayara Maven kurulduğu zaman ilk çalıştırma anında arka planda hemen bir local repo yaratılır. Local repo o bilgisayar üzerinde derlenecek olan uygulamaların ihtiyacı olan bağımlılıkları barındırır ve aynı bağımlılığa sahip yeni bir uygulama yaratılması durumunda dependency tekrar download edilmez bu local repodan kullanılır.
Maven istenilen kütüphane için önce local repoya bakar, eğer local repoda bulamaz ise bu durumda firmaya ait merkezi repo kontrol edilir, burada da bulunamazsa bu durumda merkezi maven reposuna sorgulama yapılır. Ve dependency önce firmanın merkezi reposuna oradan da local repoya download edilir.
Artifact
Pom.xml dosyasına repodan çeşitli kütüphaneler ekleriz. Bu kütüphanelerin artifactları yani projemize dahil ettiğimiz eklentileri alt dalları vardır. Pom.xml dosyasındaki grupıd ler eklenen kütüphaneyi artifactıd ler bu kütüphanenin hangi bölümünü dahil etmek istediğimizi gösterir.
Bence artifact konusunu tam anlamamış gibi duruyursun. Önce direk kelime anlamına bakalım.
Artifact: özellikle ilk insanların meydana getirdiği sanat eseri, insan eliyle yapılan şey.
https://tureng.com/en/turkish-english/artifact
Burda anlaman gereken sen veya senden önceki programcıların yaptığı ve senin veya başkalarının kullanımına sunabileceğin bir meta. Yani kütüphane olabilir, uygulama olabilir. Senin örneğinde aslında bir pom.xml i çalıştırdığında ortaya çıkan jar, war veya ear dosyası. Aslında uygulananın bağlı olduğu ve kullandığı kütüphaneler de aynı açıdan değerlendirilir. Örneğin JUnit kullanıyorsundur projende, junit.jar bir artifact oluyor, ya da ben jodd kütüphanelerini beğeniyorum jodd-http.jar da bir artifact olur.