mvn archetype: สร้างมีตัวเลือกมากเกินไปและฉันกำลังมองหาการสร้างยูทิลิตี้ java อย่างง่ายพร้อมกรณีทดสอบ junit ฉันต้องการทราบว่าฉันควรใช้แม่แบบใดที่นี่?
mvn archetype: สร้างมีตัวเลือกมากเกินไปและฉันกำลังมองหาการสร้างยูทิลิตี้ java อย่างง่ายพร้อมกรณีทดสอบ junit ฉันต้องการทราบว่าฉันควรใช้แม่แบบใดที่นี่?
คำตอบ:
เมื่อคุณทำ a mvn archetype:generate
การเลือกเริ่มต้นจะปรากฏในวงเล็บปีกกา()
เช่น(1274)
หากคุณเลื่อนขึ้นเพื่อดูว่า # 1274 คืออะไรโดยปกติจะเป็นแม่แบบ Java เริ่มต้นที่จะลองใช้หรือเริ่มต้นหากทำโครงการ Java แบบธรรมดาก็คือ ปลอดภัยในการเลือก
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
ฉันใช้สองต้นแบบ ขึ้นอยู่กับว่าคุณจะสร้างแอปพลิเคชันประเภทใด
หากคุณต้องการโปรแกรมเว็บใช้Maven-แม่-webappหรือถ้าคุณต้องการใช้งานโปรแกรมที่ง่ายMaven-แม่-QuickStart มีประโยชน์เพราะคุณจะสามารถขยายได้โดยไม่มีปัญหา
ฉันใช้คำสั่งดังต่อไปนี้:
mvn archetype:generate -Dfilter=org.apache.maven.archetypes:
ฉันจะได้รับรายชื่อของ achetypes เฉพาะจากorg.apache.maven.archetypes
groupID สิ่งที่ดีสำหรับการเริ่มต้นคือmaven-archetype-quickstart
และmaven-archetype-webapp
เหมือนที่รุ่นก่อนของฉันพูด
mvn archetype:generate -DgroupId=com.example -DartifactId=foobar -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
การอ้างอิง: Build Run Java Maven Project Command Line
ฉันคิดว่าคุณควรใช้ maven-archetype-simple
แก้ไข
ตามเอกสารของ maven :
maven-archetype-quickstart
แม่แบบที่มีโครงการ Maven ตัวอย่างmaven-archetype-simple
แม่แบบที่มีโครงการ Maven อย่างง่ายmaven-archetype-simple
ในการเลือกคราสของฉัน maven-archetype-quickstart
แต่ฉันเห็น พวกเดียวกันหรือเปล่า?
pom.xml
ด้วยตนเองและเรียกใช้บรรทัดคำสั่งจากพรอมต์คำสั่ง
ฉันจะเริ่มต้นด้วยไฟล์ pom.xml ที่เรียบง่ายซึ่งมีเฉพาะสิ่งที่คุณต้องการเท่านั้น สิ่งที่ต้องการ
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
<version>1</version>
</project>
จากhttp://maven.apache.org/guides/introduction/introduction-to-the-pom.html
คุณสามารถใช้สิ่งพื้นฐานใดก็ได้จาก The Practical Developer:
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 และ AssertJ และไฟล์รายการเริ่มต้นในกรณีที่คุณต้องการให้ไฟล์ jar ของคุณสามารถเรียกใช้งานได้ ข้อมูลเพิ่มเติม: https://thepracticaldeveloper.com/archetypes/
Disclaimer: ฉันเป็นผู้เขียนบล็อกนั้น
groupId
แต่มีarchetypeGroupId
ไว้เพื่ออะไร?
archetypeArtifactId
.
maven-archetype-quickstart แม่แบบที่มีโครงการ Maven ตัวอย่าง maven-archetype-simple แม่แบบที่มีโครงการ Maven อย่างง่าย
หากได้รับข้อผิดพลาดได้รับการแก้ไขโดยการเพิ่มแค็ตตาล็อก maven archetype ไปยัง eclipse ขั้นตอนมีให้ด้านล่าง:
เปิดหน้าต่าง> การตั้งค่า> Maven> Archetypes
คลิก
Add Remote Catalog
และเพิ่มสิ่งต่อไปนี้:ไฟล์แคตตาล็อก: http://repo1.maven.org/maven2/archetype-catalog.xml
คำอธิบาย: แคตตาล็อก maven
หมายเหตุ: จำเป็นต้องมีการเชื่อมต่ออินเทอร์เน็ตในระหว่างการสร้างโครงการ MAVEN แรกของคุณ
หมายเลขแม่แบบเริ่มต้นตอนนี้คือ 1092 1092: remote -> org.apache.maven.archetypes: maven-archetype-quickstart (แม่แบบที่มีตัวอย่างโครงการ Maven)
คุณอาจต้องการพิจารณาJava Archetype : มีค่าเริ่มต้นที่สมเหตุสมผลสำหรับการเริ่มต้นโปรเจ็กต์ Java อย่างรวดเร็วตามแนวทางปฏิบัติที่ดีที่สุดรวมถึงการทดสอบ JUnit maven-archetype-quickstart
ฉันคิดว่ามันเป็นทายาทที่ทันสมัยของ
ตัวอย่าง: mvn archetype:generate -DarchetypeGroupId=io.github.oliviercailloux -DarchetypeArtifactId=java-archetype -DgroupId=mygroupid -DartifactId=myartifactid -DinteractiveMode=false
.
Disclaimer: ฉันเป็นผู้เขียน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับทางเลือกต่อไปนี้เป็นส่วนหนึ่งของREADME ของโครงการนั้น (มีลิงก์มากกว่าที่คัดลอกที่นี่)
แม่แบบการเริ่มต้นอย่างรวดเร็วอย่างเป็นทางการ
แม่แบบอย่างเป็นทางการ (กล่าวถึงโดยคู่มือการเริ่มต้นใช้งาน Maven ของ Apache และ Apache Maven Cookbook) สำหรับโปรเจ็กต์ Java ง่ายๆคือ maven-archetype-quickstart หรือ org.apache.maven.archetypes: maven-archetype-quickstart แบบเต็ม
IMHO ควรได้รับการพิจารณาให้เลิกใช้เนื่องจากมีจุดอ่อนหลายประการ
แม่แบบของฉันยังให้การบันทึกตามค่าเริ่มต้นซึ่งฉันคิดว่ามีประโยชน์ปรับขนาดได้ดีกว่า sysout และไม่เจ็บและ Guava ซึ่งฉันคิดว่าเพิ่มประโยชน์ให้กับ Java
รูปแบบการเริ่มต้นอย่างรวดเร็วอื่น ๆ ใน Maven Central
เพื่อที่จะเข้าร่วมความพยายามหากเป็นไปได้และหลีกเลี่ยงการทำซ้ำที่สิ้นเปลืองฉันจึงค้นหาต้นแบบอื่น ๆ ที่จะมีจุดมุ่งหมายเดียวกันกับของฉัน: จัดเตรียมแม่แบบที่เรียบง่ายพร้อมค่าเริ่มต้นที่สมเหตุสมผลเพื่อเริ่มโครงการ Java ที่ทันสมัยได้อย่างง่ายดาย (ส่วนใหญ่ทำประมาณเดือนมิถุนายน 2020)
การค้นหาทั่วไปบนอินเทอร์เน็ตทำให้ฉันไปสู่ The Practical Developer เมื่อได้รับการติดต่อเขาเขียนถึงฉัน (ทางอีเมล) ว่าเขาไม่ได้ทำงานกับแม่แบบของเขาเป็นประจำดังนั้นจึงต้องการปฏิเสธการทำงานร่วมกันในโครงการดังกล่าว
เนื่องจากการค้นหาบนอินเทอร์เน็ตไม่ได้เปิดเผยผลลัพธ์ที่เป็นประโยชน์อื่น ๆ และเนื่องจากฉันไม่พบเครื่องมือค้นหาเฉพาะที่เหมาะกับความต้องการของฉันฉันจึงใช้เบราว์เซอร์ต้นแบบที่เรียบง่าย มันแสดงรายการต้นแบบทั้งหมดที่มีอยู่ใน Maven Central มีจำนวนมากเกินไปที่จะตรวจสอบด้วยตนเองดังนั้นฉันจึงเลือกผู้ที่มี groupId และ artifactId ตั้งแต่อย่างน้อยสามปีและได้รับการอัปเดตในช่วงปีที่แล้วด้วยความหวังว่าจะพบโครงการที่ได้รับการดูแลในระยะยาวซึ่งฉันคิดว่าบ่งชี้ว่า น่าจะเป็นโครงการคุณภาพดี (แน่นอนว่าตัวกรองนี้อาจพลาดต้นแบบคุณภาพดีที่ตรงกับเป้าหมายที่ระบุไว้อย่างสมบูรณ์ฉันไม่มีทางรู้ในกรณีนี้แม่แบบนี้ไม่ผ่านตัวกรองนั้นเนื่องจากฉันได้เปลี่ยน artifactId เมื่อเวลาผ่านไป)
จากนั้นฉันก็กรองรายการผลลัพธ์ด้วยตนเองตามคำอธิบายต้นแบบที่พบใน POM ของพวกเขาและให้ดูเพิ่มเติม (ในเว็บไซต์อย่างเป็นทางการโดยทั่วไป) สำหรับต้นแบบที่มีแนวโน้มสองสามรายการ com.github.ngeor:archetype-quickstart-jdk8
เปิดเผยเพียงว่าเป็นผู้สมัครที่เหมาะสมเท่านั้น แต่ผู้เขียนเขียนถึงฉันว่าเขา“ ไม่ได้ใช้ / ดูแลต้นแบบมากนักในทุกวันนี้”