Каковы URL-адреса всех известных вам каталогов архетипов Maven?


Maven Archetypes - это "шаблоны", с помощью которых вы можете быстро сгенерировать работающий пример заданного типа фреймворка или проекта. Я пытаюсь составить список всех каталогов архетипов Maven, которые в настоящее время активны в сети.

Из документации Maven о файлах каталога :

Хранятся знания об архетипах в каталогах.

Каталоги представляют собой xml-файлы.

Плагин Archetype поставляется в комплекте с внутренним каталог. Это используемый по умолчанию.

Плагин Archetype может использовать каталоги из локальной файловой системы и из HTTP подключение.

До сих пор я собрал этот список репозиториев, которые публикуют каталоги, но хотел бы посмотреть, знает ли кто-нибудь еще:

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/

Ссылки на то же самое: 1) FuseSource 2) кокон 3) Java.net 4) MyFaces 5) гобелен 6) Каталог Scala 7) терракота Каталог

Вы заметите, что если репозиторий действительно публикует каталог архетипов (все вышеперечисленное), вы получите приглашение пользовательского интерфейса со всеми вариантами, найденными в этом archetype-catalog.xml. Например:

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):

Если вы хотите просмотреть файл каталога Scala непосредственно, например, вы можете перейти к http://scala-tools.org/archetype-catalog.xml

Но если хранилище не предоставляет каталог архетипов.xml, тогда, как и говорит Паскальт, вам нужно будет знать имя в заранее (гораздо менее удобно) и передать его в аргументах командной строки.

5 43

5 ответов:

честно говоря, я не вижу смысла составлять список всех каталогов. Мне кажется более "естественным" сначала выбрать проект, а затем при необходимости добавить каталог. Вот почему в списке архетипов больше ценности. Вам все равно понадобится их название, даже если у вас есть все каталоги в списке.

Во всяком случае, вот некоторые кандидаты;

Редактировать: после того, как Мэтью разъяснения по каталогам образца.

Я неправильно понял некоторые понятия, и мой ответ не ясен и не верен. Смысл каталогов именно в том, чтобы не знать заранее названия архетипов. Они предназначены для публикации архетипов и позволяют mvn archetype:generate перечислять архетипы. Так что имеет смысл добавить" внешние " каталоги (разбираться не во внутренних) чтобы получить более широкий список известных архетипов при использовании mvn archetype:generate. Для архетипов без каталога пользователи должны ввести ужасную команду, которая должна быть где-то задокументирована (потому что она требует знания артефакта).

Относительно моих предложений:

  • Архетипы Атласяна находятся во внутреннем каталоге. Не очень хорошее предложение.

  • Архетипы Граалей отсутствуют во внутреннем каталоге или в опубликованном издании archetype-catalog.xml. не очень хороший предложение.

  • ServiceMix имеет каталоги здесь http://servicemix.apache.org/tooling/ (на основе шаблона http://servicemix.apache.org/tooling/<version>/archetype-catalog.xml). верное предложение.


Одна забавная вещь, которую я узнал, копая это. Maven guys предоставляет хороший инструмент, который помогает людям, разрабатывающим архетипы, создавать каталог XML: цель archetype:crawl в основном обходит локальный репозиторий Maven в поисках архетипов и генерирует / обновляет файл archetype-catalog.xml в ~/.m2/repository по умолчанию. Проекты, люди просто должны периодически запускать что-то вроде:

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

Grails не предоставляет каталога. Чтобы создать проект, мы должны запустить :

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
Но как только мы это сделали, у нас есть архетип в нашем локальном хранилище. Итак, если мы наберем:
mvn archetype:crawl -Dcatalog=/home/<me>/.m2/archetype-catalog.xml

Архетип указан в ~/.m2/archetype-catalog.xml , и теперь мы можем использовать mvn archetype:generate и для Граалей (см. Вариант 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)
...

Это, конечно, (огромный) обходной путь, и это может иметь побочные эффекты (вы не будете смотрите новые версии архетипов). На самом деле, я не думаю, что архетип:цель обхода предназначена для этого использования. Я бы хотел, чтобы все проекты публиковали свои архетипы.

Для списка архетипов Maven обратитесь к этой ссылке http://www.myjeeva.com/2012/06/exclusive-maven-archetype-list/ (Вы найдете около 607 архетипов).

При использовании команды mvn archetype:generate в вопросе Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 197:

Укажите номер архетипа из приведенной выше ссылки.

Примечание: значение по умолчанию-197

  • 197 -> орг.апаш.знаток.архетипы: maven-archetype-quickstart (архетип, содержащий образец проекта Maven.)

У терракоты есть один, но я не знаю url-адрес сразу...отправлю обратно. Кроме того, я использовал архетипы в прошлом из AppFuse (http://static.appfuse.org/releases/) иWebtide , хотя я не знаю, где найти их каталоги архетипов.

Хранилище терракоты и каталог находятся здесь: http://www.terracotta.org/download/reflector/maven2/

Возможно, это полезный: http://docs.codehaus.org/display/MAVENUSER/Archetypes+Список

Индекс nexus, который создается Nexus и используется M2eclipse, знает обо всех архетипах и позволяет выбирать их при создании нового проекта maven из ide.

В Codehaus есть еще один ресурс для очень надежного списка архетипов в сети. http://docs.codehaus.org/display/MAVENUSER/Archetypes+Список