สิ่งที่ช่วยฉันได้มากคือการเรียกใช้แม่แบบ Maven: สร้างเป้าหมายและเลือกจากหนึ่งในต้นแบบซึ่งบางอย่างดูเหมือนจะได้รับการอัปเดตเป็นประจำ (โดยเฉพาะ JBoss ดูเหมือนจะได้รับการดูแลอย่างดี)
mvn archetype:generate
ต้นแบบหลายร้อยแบบปรากฏในรายการลำดับเลขที่ให้เลือก (519 ณ ตอนนี้!) เป้าหมายยังคงทำงานอยู่แจ้งให้ฉันทำการเลือกโดยป้อนตัวเลขหรือป้อนสตริงค้นหาเช่น:
513: remote -> org.xwiki.commons:xwiki-commons-component-archetype
514: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro
515: remote -> org.zkoss:zk-archetype-component
516: remote -> org.zkoss:zk-archetype-webapp
517: remote -> ru.circumflex:circumflex-archetype (-)
518: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):
ฉันป้อนสตริงค้นหา "ear" ซึ่งลดรายการเหลือเพียง 8 รายการ (ณ วันนี้):
Choose archetype:
1: remote -> org.codehaus.mojo.archetypes:ear-j2ee14 (-)
2: remote -> org.codehaus.mojo.archetypes:ear-javaee6 (-)
3: remote -> org.codehaus.mojo.archetypes:ear-jee5 (-)
4: remote -> org.hibernate:hibernate-search-quickstart (-)
5: remote -> org.jboss.spec.archetypes:jboss-javaee6-ear-webapp
6: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp-ear-archetype
7: remote -> org.jboss.spec.archetypes:jboss-javaee6-webapp-ear-archetype-blank
8: remote -> org.ow2.weblab.tools.maven:weblab-archetype-searcher
ฉันเลือก "org.jboss.spec.archetypes: jboss-javaee6-ear-webapp" (โดยป้อนตัวเลือก "5" ในตัวอย่างนี้)
จากนั้นเป้าหมายขอให้ฉันป้อน groupId, artifactId, ชื่อแพ็กเกจ ฯลฯ จากนั้นสร้างแอปพลิเคชันตัวอย่างที่มีเอกสารอย่างดีดังต่อไปนี้:
[pgarner@localhost Foo]$ tree
.
|-- Foo-ear
| `-- pom.xml
|-- Foo-ejb
| |-- pom.xml
| `-- src
| |-- main
| | |-- java
| | | `-- com
| | | `-- foo
| | | |-- controller
| | | | `-- MemberRegistration.java
| | | |-- data
| | | | `-- MemberListProducer.java
| | | |-- model
| | | | `-- Member.java
| | | `-- util
| | | `-- Resources.java
| | `-- resources
| | |-- import.sql
| | `-- META-INF
| | |-- beans.xml
| | `-- persistence.xml
| `-- test
| |-- java
| | `-- com
| | `-- foo
| | `-- test
| | `-- MemberRegistrationTest.java
| `-- resources
|-- Foo-web
| |-- pom.xml
| `-- src
| `-- main
| |-- java
| | `-- com
| | `-- foo
| | `-- rest
| | |-- JaxRsActivator.java
| | `-- MemberResourceRESTService.java
| `-- webapp
| |-- index.html
| |-- index.xhtml
| |-- resources
| | |-- css
| | | `-- screen.css
| | `-- gfx
| | |-- banner.png
| | `-- logo.png
| `-- WEB-INF
| |-- beans.xml
| |-- faces-config.xml
| `-- templates
| `-- default.xhtml
|-- pom.xml
`-- README.md
32 directories, 23 files
หลังจากอ่านไฟล์ POM ทั้งสี่ไฟล์ซึ่งได้รับความคิดเห็นเป็นอย่างดีฉันมีข้อมูลทั้งหมดที่ต้องการ
./pom.xml
./Foo-ear/pom.xml
./Foo-ejb/pom.xml
./Foo-web/pom.xml