[Java] Uygulamamı Nasıl Paketlemeliyim?
-
selamlar
bir CLI app im bir de web servisim var. ikisinde de kullanmak istediğim kodlarım var. totalde 3 repom var.
build tool olarak maven kullanıyorum.
3. repoyu bu iki projeye nasıl eklememi önerirsiniz?
java kullanmaya yeni başladım sayılır. nasıl aratacağımı da düşünemedim.
"mvn add repository as dependency" falan diye arattım da hep çok çirkin şeyler çıktı
web tarafında quarkus, cli tarafında picocli kullanıyorum.
-
Selamlar
Soruyu doğru mu anladım bilmiyorum ancak 3.reponun bir JAR halini oluştursan ve bu JAR halini kullanmak istediğin diğer repolarına dependency olarak eklesen?
-
Roark bunu yazdı
Selamlar
Soruyu doğru mu anladım bilmiyorum ancak 3. projeyi bir JAR olarak istediğin yere eklesen?
amacim o ama nasi yapacagimi çözemedim işte hocam. bu işi otomatize etmek istiyorum.
-
Mesajı düzenleyerek şöyle yardımcı olmaya çalışayım
JAR için farklı yöntemler var ilk yöntem intellij kullanıyorsan ; view-tool windows - maven - buradan JAR yapabilirsin
ikinci yöntem ise proje içerisinde terminal üzerinden JAR alabilirsin, projenin kök dizininde iken çalıştırmak daha stabil sonuçlar verebilir ama spesifik bir problem oluşturacağını düşünmüyorum.
"mvn assembly:single" bu komutu yazdığında projeni assembly plugin ile beraber JAR haline getirecek ve target altına atacaktır
-
Roark bunu yazdı
Intellij mi kullanıyorsun?
eğer evet ise view-tool windows - maven - buradan JAR yapabilirsin
terminal üzerinden projede eğer bir hata vs olmadığını düşünüyorsan direkt mvn package deyip bu komutu çalıştırdıktan sonra target altına gidip orada jar'ı görebilirsin
eğer oluşturacağın JAR üzerinde snapshot vb isim görmek istemiyorsan yani custom bir isim vermek istiyorsan projenin pom.xml altında <finalName>my-project</finalName> oluşturabilirsin bu sekilde jar çıktığında istediğin isimle çıkar
bunlari biliyorum abi. istediğim şu: ben bu 3. repoyu maven e dependency olarak (ya da nasıl eklemem gerekiyorsa ) . ben "mvn package" dediğimde gidip çeksin o repodan. elle jar taşımak pek pratik bişey değil
-
yolbulucu bunu yazdıRoark bunu yazdı
Intellij mi kullanıyorsun?
eğer evet ise view-tool windows - maven - buradan JAR yapabilirsin
terminal üzerinden projede eğer bir hata vs olmadığını düşünüyorsan direkt mvn package deyip bu komutu çalıştırdıktan sonra target altına gidip orada jar'ı görebilirsin
eğer oluşturacağın JAR üzerinde snapshot vb isim görmek istemiyorsan yani custom bir isim vermek istiyorsan projenin pom.xml altında <finalName>my-project</finalName> oluşturabilirsin bu sekilde jar çıktığında istediğin isimle çıkar
bunlari biliyorum abi. istediğim şu: ben bu 3. repoyu maven e dependency olarak (ya da nasıl eklemem gerekiyorsa ) . ben "mvn package" dediğimde gidip çeksin o repodan. elle jar taşımak pek pratik bişey değil
Anladım abi, sen şimdi 1 adet projeni JAR haline getirdin
Daha sonra bunu dependency olarak 1-2-3 ya da N tane projene eklemek istedin ya da ekledin ve kullanmaya başladın
Aradan 1 gün ya da 1 hafta zaman geçti ve JAR dosyanı güncelledin, otomatik olarak bu JAR dosyasını kullanan yani senin JAR dosyana bağımlı hale gelen projelerde otomatik olarak güncellesin istiyorsun bunun için farklı yöntem var local olarak ya da maven deploy kullanarak otomatik hale getirilebilir
Roark tarafından 13/Oca/23 02:46 tarihinde düzenlenmiştir -
-
RETRET bunu yazdı
@Roark maven ile jar dosyası güncellemeyi anlatıp dökümanlara ekleseniz güzel olur.
Müsait bir zamanda ilgilenmeye çalışayım :)
-
how-to-add-local-jar-files-to-a-maven-project
şurada 2. cevaba bakabilirsin. Ürettiğin jar ı .m2 klasörüne atıp register ediyorsun.
ya da multi modules yapı kullanabilirsin. bir main projen olur diğer üc projeyi submodule olarak ekleyip yine bir birine dependency olarak kullanabilirsin
https://www.baeldung.com/maven-multi-module
yok bunlar da çirkin dersen kendi artifact serverini kurup dependency olarak kullanacağın jar ı buraya yükler, yine maven a burayı artifact server olarak gösterebilirsin.
https://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository
-
sLeymN bunu yazdı
how-to-add-local-jar-files-to-a-maven-project
şurada 2. cevaba bakabilirsin. Ürettiğin jar ı .m2 klasörüne atıp register ediyorsun.
ya da multi modules yapı kullanabilirsin. bir main projen olur diğer üc projeyi submodule olarak ekleyip yine bir birine dependency olarak kullanabilirsin
https://www.baeldung.com/maven-multi-module
yok bunlar da çirkin dersen kendi artifact serverini kurup dependency olarak kullanacağın jar ı buraya yükler, yine maven a burayı artifact server olarak gösterebilirsin.
https://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository
multi module olayı en kolayı ve düzgünü gibi duruyor. bi de mvn repo yönetmeyeyim.
şeye uğraşıcam biraz : bu üçünü tek projede toplayıp aynı projeden hem picocli de yaptığım cli app ini hem webservisi jar haline getirmeye çalışıcam. daha derli toplu olur. testlerde birbirini tekrar etmez.
-
yolbulucu bunu yazdısLeymN bunu yazdı
how-to-add-local-jar-files-to-a-maven-project
şurada 2. cevaba bakabilirsin. Ürettiğin jar ı .m2 klasörüne atıp register ediyorsun.
ya da multi modules yapı kullanabilirsin. bir main projen olur diğer üc projeyi submodule olarak ekleyip yine bir birine dependency olarak kullanabilirsin
https://www.baeldung.com/maven-multi-module
yok bunlar da çirkin dersen kendi artifact serverini kurup dependency olarak kullanacağın jar ı buraya yükler, yine maven a burayı artifact server olarak gösterebilirsin.
https://www.theserverside.com/news/1364121/Setting-Up-a-Maven-Repository
multi module olayı en kolayı ve düzgünü gibi duruyor. bi de mvn repo yönetmeyeyim.
şeye uğraşıcam biraz : bu üçünü tek projede toplayıp aynı projeden hem picocli de yaptığım cli app ini hem webservisi jar haline getirmeye çalışıcam. daha derli toplu olur. testlerde birbirini tekrar etmez.
aynen en temizi o (: clean install vs yaparken hiyerarşik derler vs.
bağımlılıkları yönetmek için sonraki aşamada her modülün için bir bom modül oluşturabilirsin. şu aşamada öğrenmene gerek yok ama bom modül yapısına da bakabilirsin. hiyerarşik birden fazla modülün olduğunda yukarıdan aşağıya versiyon vs yönetmesi kolay olur.