2009-03-11 26 views
41

Maven Archetypes là các "mẫu" mà bạn có thể nhanh chóng tạo ra một ví dụ đang chạy của một khung công tác hoặc loại dự án cụ thể. Tôi đang cố gắng biên dịch một danh sách tất cả các danh mục nguyên mẫu của Maven hiện đang hoạt động trên mạng.URL của tất cả các danh mục Maven Archetype mà bạn biết là gì?

From the Maven documentation about catalog files:

Kiến thức về các nguyên mẫu được lưu trữ in catalogues.

Danh mục là các tệp xml.

Plugin Archetype được đóng gói bằng danh mục nội bộ. Cái này là được sử dụng theo mặc định.

Plugin nguyên mẫu có thể sử dụng danh mục từ hệ thống tệp cục bộ và từ kết nối HTTP .

Cho đến nay, tôi đã thu thập danh sách các kho mà xuất bản catalog, nhưng rất thích xem có ai biết nhiều:

mvn archetype:generate 
-DarchetypeCatalog=local 
-DarchetypeCatalog=remote 
-DarchetypeCatalog=http://repo.fusesource.com/maven2 
-DarchetypeCatalog=http://cocoon.apache.org 
-DarchetypeCatalog=http://download.java.net/maven/2 
-DarchetypeCatalog=http://myfaces.apache.org 
-DarchetypeCatalog=http://tapestry.formos.com/maven-repository 
-DarchetypeCatalog=http://scala-tools.org 
-DarchetypeCatalog=http://www.terracotta.org/download/reflector/maven2/ 

Liên kết để cùng: 1) FuseSource 2) Cocoon 3) Java.net 4) MyFaces 5) Tapestry 6) Scala Catalog 7) Terracotta Catalog

Bạn sẽ nhận thấy rằng nếu kho lưu trữ thực sự xuất bản một danh mục nguyên mẫu (tất cả những điều trên), bạn sẽ nhận được một dấu nhắc giao diện người dùng của tất cả các lựa chọn được tìm thấy trong đó archetype-catalog.xml. Ví dụ:

mvn archetype:generate -DarchetypeCatalog=http://scala-tools.org 

[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) 
Choose archetype: 
1: http://scala-tools.org -> scala-archetype-simple (A simple scala project) 
2: http://scala-tools.org -> lift-archetype-blank (A blank/empty liftweb project) 
3: http://scala-tools.org -> lift-archetype-basic (A basic liftweb project (with DB, css, ...)) 
Choose a number: (1/2/3): 

Nếu bạn muốn xem các cửa hàng tập Scala trực tiếp ví dụ, bạn có thể browse to http://scala-tools.org/archetype-catalog.xml

Nhưng nếu kho không cung cấp một nguyên mẫu-catalog.xml, sau đó chỉ cần như PascalT nói , bạn sẽ cần phải biết tên trước (ít thuận tiện hơn nhiều) và vượt qua nó trong các đối số dòng lệnh.

+0

Thật không may, như của Maven 3 (tôi tin) đi qua một URL hoặc tên tập tin của một cửa hàng trên dòng lệnh để 'mvn archetype: generate -DarchetypeCatalog = ...' như thực hiện ở trên là không còn có thể. Chỉ 'local',' remote' và 'internal' được hỗ trợ và cấu hình phải [xảy ra trong tệp settings.xml] (https://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html #archetypeCatalog). –

Trả lời

16

Thành thật mà nói, tôi không thực sự nhìn thấy điểm của việc xây dựng một danh sách của tất cả các catalog. Có vẻ "tự nhiên" hơn với tôi để chọn một dự án đầu tiên và sau đó thêm danh mục nếu cần. Đây là lý do tại sao có IMO giá trị hơn trong một danh sách các nguyên mẫu. Bạn sẽ cần tên của họ anyway, ngay cả khi bạn có tất cả các danh mục trong một danh sách.

Dù sao, đây là một số ứng cử viên;

Chỉnh sửa: sau khi Matthew làm rõ về catalog nguyên mẫu của.

Tôi hiểu lầm một số khái niệm và câu trả lời của tôi không rõ ràng và chính xác.

Điểm danh mục chính xác là không phải biết tên của các kiểu mẫu trước. Chúng được tạo ra để xuất bản các kiểu mẫu và cho phép mvn archetype:generate liệt kê các kiểu mẫu. Vì vậy, nó có ý nghĩa để thêm "bên ngoài" danh mục sản phẩm (hiểu không phải trong nội bộ) để có được một danh sách rộng hơn của các nguyên mẫu được biết đến khi sử dụng mvn archetype:generate.

Đối với kiểu mẫu không có danh mục, người dùng phải nhập lệnh khủng khiếp phải được ghi ở đâu đó (vì nó yêu cầu kiến ​​thức về tạo phẩm).

Về mệnh đề của tôi:

  • nguyên mẫu Atlassian là trong danh mục nội bộ. Không phải là một đề xuất tốt.

  • Mẫu nguyên mẫu grails không nằm trong danh mục nội bộ hoặc trong một xuất bản archetype-catalog.xml. Không phải là một đề xuất tốt.

  • ServiceMix có danh mục tại đây http://servicemix.apache.org/tooling/ (dựa trên mẫu http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml). Đề xuất hợp lệ.


Một điều thú vị tôi đã học trong khi đào này. Những kẻ quạ cung cấp một công cụ tốt giúp mọi người phát triển các nguyên mẫu để tạo ra một danh mục XML: mục tiêu archetype:crawl về cơ bản thu thập dữ liệu một kho lưu trữ Maven cục bộ đang tìm kiếm các Archetypes và tạo/cập nhật tệp archetype-catalog.xml theo mặc định ~/.m2/repository. Các dự án, mọi người chỉ cần chạy định kỳ một cái gì đó như:

mvn archetype:crawl -Dcatalog=/var/www/html/archetype-catalog.xml

Grails không cung cấp danh mục. Để tạo dự án, we have to run:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate -DarchetypeGroupId=org.grails \ 
-DarchetypeArtifactId=grails-maven-archetype \ 
-DarchetypeVersion=1.0 \ 
-DarchetypeRepository=http://snapshots.repository.codehaus.org \ 
-DgroupId=example -DartifactId=my-app 

Nhưng một khi chúng tôi đã làm điều này, chúng tôi có nguyên mẫu trong kho lưu trữ cục bộ của chúng tôi. Vì vậy, nếu chúng ta gõ:

mvn archetype:crawl -Dcatalog=/home/<me>/.m2/archetype-catalog.xml 

Các nguyên mẫu được liệt kê trong ~/.m2/archetype-catalog.xml và bây giờ chúng tôi có thể sử dụng mvn archetype:generate cho Grails quá (thấy tùy chọn 5):

mvn archetype:generate 
... 
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) 
Choose archetype: 
1: local -> maven-archetype-archetype (archetype) 
2: local -> maven-archetype-j2ee-simple (j2ee) 
3: local -> maven-archetype-quickstart (quickstart) 
4: local -> maven-archetype-webapp (webapp) 
5: local -> grails-maven-archetype (maven-project) 
6: internal -> appfuse-basic-jsf (AppFuse archetype for creating a web application with Hibernate, Spring and JSF) 
... 

Đây là khóa học một (hugly) workaround và nó có thể có tác dụng phụ (bạn sẽ không thấy các phiên bản kiểu mẫu mới).Trên thực tế, tôi không nghĩ rằng nguyên mẫu: mục tiêu thu thập thông tin được thiết kế để sử dụng cho mục đích này. Tôi muốn tất cả các dự án đều xuất bản các kiểu mẫu của họ.

+0

Cảm ơn bạn đã bổ sung. Nếu bạn đang sử dụng nguyên mẫu: tạo ra với một tên danh mục, bạn sẽ được trình bày với một danh sách để lựa chọn, do đó bạn không cần phải biết tên của nguyên mẫu mà bạn đang sử dụng trước. https: //maven.atlassian.com/... dường như không có tệp archetype-catalog.xml –

+0

Cảm ơn bạn đã làm rõ về danh mục. Tôi sẽ chỉnh sửa câu trả lời của mình để làm rõ. Và btw, nguyên mẫu Atlassian thực sự nằm trong danh mục nội bộ. –

+0

Cập nhật thú vị. Cảm ơn tất cả các dữ liệu mới Pascal. Cũng lưu ý rằng có viết tắt cho ~/.m2/archetype-catalog.xml - chỉ cần nói -Dcatalog = local Nó vẫn không giải quyết được thực tế là Grails không cung cấp, nhưng nó làm cho nó sạch sẽ một khi bạn tạo ra nó. –

1

Đất nung có một nhưng tôi không biết url ngoại tuyến ... sẽ đăng lại. Ngoài ra, tôi đã sử dụng các kiểu mẫu trong quá khứ từ AppFuse (http://static.appfuse.org/releases/) và Webtide mặc dù tôi không biết nơi để tìm danh mục nguyên mẫu của chúng.

Các kho Terracotta và catalô đang ở đây: http://www.terracotta.org/download/reflector/maven2/

Có lẽ đây là hữu ích: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

+0

Cảm ơn! Thật tuyệt vời nếu bạn có thể khuyến khích Terracotta xuất bản không chỉ các nguyên mẫu, mà là một danh mục nguyên mẫu. Nó thực sự khuyến khích sử dụng bề rộng của các nguyên mẫu. Thông tin về xuất bản danh mục: http://www.sonatype.com/books/maven-book/reference/archetype-sect-publishing.html –

+0

Có vẻ như thế này (http://download.terracotta.org/maven2/index .html) là bản repo của Terracotta, nhưng nó dường như không có một file-catalog.xml –

+0

Rất tiếc! Được sử dụng để ở đó, phải có được loại bỏ bằng cách nào đó. Đang sửa chữa ... –

1

Chỉ số nexus do Nexus sản xuất và được M2eclipse sử dụng biết về tất cả các kiểu mẫu và cho phép bạn chọn chúng khi tạo dự án maven mới từ ide.

+0

Trong trường hợp bạn muốn biết, đây là URL https://maven-us.nuxeo.org/nexus/content/groups/public/archetype-catalog.xml –

0

Có một tài nguyên khác tại Codehaus để có danh sách rất mạnh mẽ các mẫu nguyên mẫu trên mạng. http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

+3

Đây chỉ là danh sách các kiểu mẫu * nội bộ *. Danh mục từ xa của Maven lớn hơn nhiều - http://repo1.maven.org/maven2/archetype-catalog.xml. –

+1

Điều này chỉ lớn như vậy kể từ khi họ bắt đầu sử dụng chỉ mục. Khi điều này ban đầu được trả lời, danh mục trung tâm được duy trì thủ công trong SVN. –

1

Đối với Maven Danh sách nguyên mẫu tham chiếu liên kết này http://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/ (bạn sẽ tìm thấy khoảng 607 Mẫu).

Trong khi sử dụng mvn archetype:generate lệnh tại vấn đề Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197:

cung cấp nguyên mẫu số từ trên cao liên kết.

Lưu ý: giá trị mặc định là 197

  • 197 -> org.apache.maven.archetypes: maven-nguyên mẫu-QuickStart
(Một nguyên mẫu, trong đó có một dự án mẫu Maven.)
+0

Vui lòng cho tôi biết chế độ xem/lý do trước khi bạn downvote. Để tôi có thể cải thiện câu trả lời của mình hoặc đưa ra lời giải thích. Cảm ơn. – jeevatkm

Các vấn đề liên quan