Basit bir java projesi için hangi arketip seçilmeli


Yanıtlar:


16

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.


bu varsayılan artık 3 değil
333'tür

4
şimdi380: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
slf

1
Örneğin, yani değil diyor, bu yüzden varsayılan seçimin 3 olduğu anlamına geliyor.
Oh Chin Boon

2
Saat şimdi 644 org.apache.maven.archetypes:maven-archetype-quickstart:1.1
aliopi

Şimdi 874 :)
miku

74

İ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.


1
Bunun varsayılan olarak Eclipse eklentisinde olduğunu unutmayın (en azından bugün).
Ben

burada maven-archetype-webapp oluşturacağım ve maven kataloğunu indireceğim ama bir hata alıyorum.
Mowgli

ne yapmalıyım?
Mowgli

19

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.archetypesGroupID. Başlamak için iyi olanları maven-archetype-quickstartve maven-archetype-webappseleflerimin söylediği gibi.



7

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.

4
Ben görmüyorum maven-archetype-simplebenim Eclipse seçiminde, ama bakın maven-archetype-quickstart. Bunlar aynı mı?
huahsin68

Lütfen maven belgelerine atıfta bulunan sonraki düzenlememe bir göz atın. Eclipse eklentisiyle ilgili olarak: Kişisel olarak pom.xmlel ile düzenlemeyi ve komut satırından komut satırını çalıştırmayı tercih ediyorum .
AlexR

6

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


12
Bu tavsiyenin değeri olsa da, soruyu cevaplamaz. Anladığım kadarıyla arketiplerin tüm amacı, geliştiriciyi bu tür bir standart şablondan kurtarmak ve en iyi uygulamaları takip etmeyi kolaylaştırmaktır.
Michael Scheper

3

The Practical Developer'daki temel olanlardan herhangi birini kullanabilirsiniz:

Java 8 + yaygın olarak kullanılan test kitaplıkları:

mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0

Java 9 + yaygın olarak kullanılan test kitaplıkları

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.


Anlıyorum groupIdama ne archetypeGroupIdiçin?
lupchiazoem

1
Maven deposundaki arketipi archetypeArtifactId.
Moisés

0

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 Catalogve 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.


Yukarıdaki kataloğu indirip manuel olarak ayarladım ancak benim için çalışmadı.
Mowgli

0

varsayılan arketip numarası şimdi 1092 1092'dir: remote -> org.apache.maven.archetypes: maven-archetype-quickstart (Örnek bir Maven projesi içeren bir arketip.)


0

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.

  • Önemli bir sorun, JUnit 4'e bağlı projeler yaratmasıdır. Mevcut sürüm olan JUnit 5, diğerlerinin yanı sıra geliştirilmiş bir API sağlayarak önemli ölçüde farklılık gösterir.
  • Küçük zayıflıklar: varsayılan sürümü 1.0-SNAPSHOT'tur ve önerilen ve olağan şemayı takip etmek için 1.0.0-SNAPSHOT olmalıdır.
  • Başka bir küçük zayıflık: 1.7 JVM için yapılandırılmış projeler oluşturur. Bu, özellikle eski yüklemeleri desteklemeniz gerekiyorsa uygun olabilir, ancak makul ölçüde yeni bir JVM'yi seçmek, yeni projeler için daha makul bir varsayılan kuraldır. Örneğin, Java 8 muhtemelen kaçırmak istemeyeceğiniz lambda ifadelerini tanıttı.

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-jdk8uygun bir aday olduğu ortaya çıktı. Ancak yazarı bana “bu arketipi pek kullanmadığını / sürdürmediğini” yazdı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.