Điều đã giúp tôi rất nhiều là chạy nguyên mẫu Maven: tạo mục tiêu và chọn từ một trong các nguyên mẫu, một số trong số đó dường như được cập nhật thường xuyên (đặc biệt là JBoss dường như được duy trì tốt).
mvn archetype:generate
Hàng trăm nguyên mẫu xuất hiện trong một danh sách được đánh số để lựa chọn (tính đến nay là 519!). Mục tiêu, vẫn đang chạy, đã nhắc tôi thực hiện lựa chọn bằng cách nhập một số hoặc nhập chuỗi tìm kiếm, ví dụ:
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):
Tôi đã nhập chuỗi tìm kiếm "tai", làm giảm danh sách xuống chỉ còn 8 mục (tính đến hôm nay):
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
Tôi đã chọn "org.jboss.spec.archetypes: jboss-javaee6-ear-webapp" (bằng cách nhập lựa chọn "5" trong ví dụ này).
Tiếp theo, mục tiêu yêu cầu tôi nhập groupId, tạo tác, tên gói, v.v. và sau đó nó tạo ứng dụng ví dụ được ghi chép đầy đủ sau:
[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
Sau khi đọc bốn tệp POM, được nhận xét tốt, tôi đã có khá nhiều thông tin cần thiết.
./pom.xml
./Foo-ear/pom.xml
./Foo-ejb/pom.xml
./Foo-web/pom.xml