Каковы URL всех каталогов Maven Archetype, о которых вы знаете? - PullRequest
44 голосов
/ 11 марта 2009

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) терракотовый каталог

Вы заметите, что если репозиторий действительно публикует каталог архетипов (все вышеперечисленное делает), вы получите приглашение UI со всеми вариантами, найденными в этом 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

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

Ответы [ 5 ]

16 голосов
/ 13 марта 2009

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

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

Редактировать: после разъяснения Матфея по каталогам архетипов.

Я неправильно понял некоторые понятия, и мой ответ не ясен и не верен.

Смысл каталогов именно в том, чтобы не нужно было заранее знать названия архетипов . Они созданы для публикации архетипов и позволяют 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 предоставляют хороший инструмент, который помогает людям, разрабатывающим архетипы, создавать 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 и для Grails (см. Вариант 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)
...

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

2 голосов
/ 01 июля 2012

Список архетипов 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 -> org.apache.maven.archetypes: maven-archetype-quickstart (Архетип, который содержит пример проекта Maven.)
1 голос
/ 16 июля 2009

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

1 голос
/ 13 марта 2009

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

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

Возможно, это полезно: http://docs.codehaus.org/display/MAVENUSER/Archetypes+List

0 голосов
/ 06 февраля 2010

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

...