mvn archetype: generate çok fazla seçenek sunuyor ve junit test durumları ile basit bir java programı oluşturmayı düşünüyorum. Burada hangi arketipi kullanmam gerektiğini bilmek istiyorum.
mvn archetype: generate çok fazla seçenek sunuyor ve junit test durumları ile basit bir java programı oluşturmayı düşünüyorum. Burada hangi arketipi kullanmam gerektiğini bilmek istiyorum.
Yanıtlar:
Bir yaptığınızda mvn archetype:generate
, küme parantezleri içinde varsayılan bir seçim görünür ()
; örneğin (1274)
, # 1274'ün ne olduğunu görmek için yukarı kaydırırsanız, genellikle denemek veya başlamak için varsayılan Java arketipidir, basit Java projeleri yapıyorsanız, seçmek güvenli.
380: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
org.apache.maven.archetypes:maven-archetype-quickstart:1.1
İki arketip kullanıyorum. Ne tür bir uygulama oluşturacağınıza bağlıdır.
Bir web uygulaması istiyorsanız, maven-archetype-webapp veya basit bir uygulama istiyorsanız maven-archetype-quickstart kullanın . Kullanışlılar çünkü onları sorunsuz bir şekilde genişletebileceksiniz.
Aşağıdaki gibi bir komut kullanıyorum:
mvn archetype:generate -Dfilter=org.apache.maven.archetypes:
Ben alacak kısa bir liste sadece gelen achetypes arasında org.apache.maven.archetypes
GroupID. Başlamak için iyi olanları maven-archetype-quickstart
ve maven-archetype-webapp
seleflerimin söylediği gibi.
mvn archetype:generate -DgroupId=com.example -DartifactId=foobar -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Referans: Oluştur Java Maven Projesi Komut Satırını Çalıştır
Bence kullanmalısın maven-archetype-simple
DÜZENLE
Maven belgelerine göre :
maven-archetype-quickstart
Örnek bir Maven projesi içeren bir arketip.maven-archetype-simple
Basit bir Maven projesi içeren bir arketip.maven-archetype-simple
benim Eclipse seçiminde, ama bakın maven-archetype-quickstart
. Bunlar aynı mı?
pom.xml
el ile düzenlemeyi ve komut satırından komut satırını çalıştırmayı tercih ediyorum .
Yalnızca ihtiyacınız olanı içeren çok basit bir pom.xml dosyasıyla başlardım. Gibi bir şey
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
<version>1</version>
</project>
dan http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
The Practical Developer'daki temel olanlardan herhangi birini kullanabilirsiniz:
mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0
mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0 -Djava-version=9
JUnit 4, Mockito ve AssertJ ve jar dosyanızın çalıştırılabilir olmasını istemeniz durumunda kullanabileceğiniz varsayılan bir bildirim dosyası içerirler. Daha fazla bilgi: https://thepracticaldeveloper.com/archetypes/
Feragatname: O blogun yazarıyım.
groupId
ama ne archetypeGroupId
için?
archetypeArtifactId
.
maven-archetype-quickstart Örnek bir Maven projesi içeren bir arketip. maven-archetype-simple Basit bir Maven projesi içeren bir arketip.
hata alma hataları, tutulmaya maven arketipi kataloğunu ekleyerek düzeltildi. Adımlar aşağıda verilmiştir:
Pencere> Tercihler> Maven> Arketipleri Aç
Tıklayın
Add Remote Catalog
ve aşağıdakileri ekleyin:Katalog Dosyası: http://repo1.maven.org/maven2/archetype-catalog.xml
Açıklama: maven kataloğu
NOT: İLK MAVEN PROJENİZİN OLUŞTURULMASI SIRASINDA İNTERNET BAĞLANTISI GEREKLİDİR.
varsayılan arketip numarası şimdi 1092 1092'dir: remote -> org.apache.maven.archetypes: maven-archetype-quickstart (Örnek bir Maven projesi içeren bir arketip.)
Java Archetype'ı düşünmek isteyebilirsiniz : JUnit testleri de dahil olmak üzere en iyi uygulamaları izleyerek bir Java projesini hızlı bir şekilde başlatmak için makul varsayılanlara sahiptir. Bunu modern bir halefi olarak düşündüm maven-archetype-quickstart
.
Örnek: mvn archetype:generate -DarchetypeGroupId=io.github.oliviercailloux -DarchetypeArtifactId=java-archetype -DgroupId=mygroupid -DartifactId=myartifactid -DinteractiveMode=false
.
Feragatname: Yazar benim.
Alternatifler hakkında daha fazla bilgi için, işte o projenin README'sinin bir kısmı ( burada kopyalanandan daha fazla bağlantı sağlar).
Resmi hızlı başlangıç arketipi
Basit Java projeleri için resmi arketip (Apache'nin Maven Başlangıç Kılavuzu ve Apache Maven Yemek Kitabı tarafından bahsedilmiştir) maven-archetype-hızlı başlangıç veya org.apache.maven.archetypes: tam olarak maven-archetype-hızlı başlangıçtır.
IMHO, birkaç zayıf yönden muzdarip olduğu için kullanımdan kaldırılmış kabul edilmelidir.
Benim arketipim ayrıca varsayılan olarak günlüğe kaydetme sağlar, bu yararlıdır, sysout'tan daha iyi ölçeklenir ve zarar vermez ve Java'yı faydalı şekilde zenginleştirdiğini düşündüğüm Guava.
Maven Central'daki diğer hızlı başlangıç arketipleri
Mümkünse çabalara katılmak ve savurgan yinelemeden kaçınmak için, benimki ile aynı amaca sahip olan diğer arketipleri aktif olarak araştırdım: modern bir Java projesini kolayca başlatmak için makul varsayılanlara sahip basit bir arketip sağlayın. (Bu çoğunlukla Haziran 2020 civarında yapıldı.)
İnternette genel bir araştırma beni The Practical Developer'a götürdü. Temasa geçtiğinde bana (e-posta ile) kendi arketipi üzerinde düzenli olarak çalışmadığını ve bu nedenle böyle bir projede işbirliğini reddetmeyi tercih ettiğini yazdı.
İnternetteki aramalar başka yararlı sonuçları ortaya çıkarmadığından ve ihtiyaçlarıma uygun özel bir arama aracı bulamadığım için basit bir arketip tarayıcısı uyguladım. Maven Central'da bulunan tüm arketipleri listeler. Manuel olarak gözden geçirilemeyecek kadar çok şey var, bu nedenle, uzun vadede sürdürülen projeleri bulma umuduyla groupId ve artifactId en az üç yıldan beri var olan ve geçen yıl güncellenenleri seçtim. daha büyük olasılıkla kaliteli bir proje. (Elbette bu filtre, belirtilen hedefe mükemmel şekilde uyan kaliteli arketipleri gözden kaçırmış olabilir; bilmem mümkün değil. Bir durumda, bu arketip, zaman içinde yapay kimliğini değiştirdiğim için bu filtreyi geçmiyor.)
Daha sonra ortaya çıkan listeyi, POM'larında bulunan arketip açıklamalarına göre manuel olarak filtreledim ve aralarındaki birkaç umut verici arketip için (genellikle resmi web sitesinde) daha fazla göz attım. Sadece com.github.ngeor:archetype-quickstart-jdk8
uygun bir aday olduğu ortaya çıktı. Ancak yazarı bana “bu arketipi pek kullanmadığını / sürdürmediğini” yazdı.