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

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

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


person Matthew McCullough    schedule 11.03.2009    source источник
comment
К сожалению, начиная с Maven 3 (я считаю) передача URL-адреса или имени файла каталога в командной строке в mvn archetype:generate -DarchetypeCatalog=..., как это было сделано выше, больше невозможна. Поддерживаются только local, remote и internal, и конфигурация должна быть происходит в settings.xml.   -  person Alexander Klimetschek    schedule 04.01.2018


Ответы (5)


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

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

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

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

Суть каталогов как раз в том, чтобы не знать заранее названия архетипов. Они созданы для публикации архетипов и позволяют mvn archetype:generate перечислять архетипы. Поэтому имеет смысл добавить «внешние» каталоги (не во внутренние), чтобы получить более широкий список известных архетипов при использовании mvn archetype:generate.

Для архетипов без каталога пользователи должны ввести ужасную команду, которая должна быть где-то задокументирована (потому что для этого требуется знание артефакта).

По поводу моих предложений:

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

  • Архетипов Grails нет ни во внутреннем каталоге, ни в опубликованном 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)
...

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

person Pascal Thivent    schedule 13.03.2009
comment
Спасибо за дополнения. Если вы используете архетип: генерировать с именем каталога, вам будет представлен список на выбор, поэтому вам не нужно заранее знать имя архетипа, который вы ищете. maven.atlassian.com ... похоже, не имеет archetype-catalog.xml - person Matthew McCullough; 13.03.2009
comment
Спасибо за разъяснение по каталогам. Отредактирую свой ответ, чтобы уточнить. И, кстати, атласские архетипы на самом деле находятся во внутреннем каталоге. - person Pascal Thivent; 14.03.2009
comment
Классное обновление. Спасибо за все новые данные Паскаль. Также обратите внимание, что есть сокращение для ~ / .m2 / archetype-catalog.xml - просто скажите -Dcatalog = local. Это все еще не решает того факта, что Grails не предоставляет его, но очищает его после его создания. . - person Matthew McCullough; 16.03.2009

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

Репозиторий и каталог Terracotta находятся здесь: http://www.terracotta.org/download/reflector/maven2/

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

person Alex Miller    schedule 13.03.2009
comment
Спасибо! Было бы здорово, если бы вы могли побудить Terracotta публиковать не только архетипы, но и каталог архетипов. Это действительно поощряет использование широты архетипов. Информация о публикации каталога: sonatype.com/books/ maven-book / reference / - person Matthew McCullough; 13.03.2009
comment
Похоже, это (download.terracotta.org/maven2/index.html) репо Terracotta, но, похоже, у него нет archetype-catalog.xml - person Matthew McCullough; 13.03.2009
comment
Теперь нужно починить терракотовую. - person Alex Miller; 13.03.2009
comment
Каталог терракоты FTW! Спасибо, Алекс! - person Matthew McCullough; 16.03.2009
comment
Кстати, Мэтт, пожалуйста, используйте URL-адрес в исходном комментарии (terracotta.org/download/reflector / maven2), а не тот, который вы добавили в комментарий. Оригинальная ссылка является официальной и будет перенаправлена ​​на актуальную (которая, скорее всего, сегодня изменится). - person Alex Miller; 16.03.2009
comment
Ok. Сегодня утром я редактировал исходную статью, и она содержит ссылку на: terracotta.org/download/reflector/ maven2 - правильный. - person Matthew McCullough; 16.03.2009

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

person Brian Fox    schedule 16.07.2009
comment
Если вы хотите знать, вот URL-адрес maven-us.nuxeo.org/nexus/content/groups/public/ - person Lee Chee Kiam; 22.11.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.)
person jeevatkm    schedule 01.07.2012
comment
Пожалуйста, дайте мне знать мнение / причину, прежде чем вы проголосуете против. Чтобы я мог улучшить свой ответ или дать объяснение. Спасибо. - person jeevatkm; 17.03.2015
comment
ваш пост напоминает саморекламу и, следовательно, голос против. - person Gautam; 12.12.2019

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

person Matthew McCullough    schedule 05.02.2010
comment
Это всего лишь список внутренних архетипов. Удаленный каталог Maven намного больше - repo1.maven.org/maven2/archetype-catalog.xml. - person Henryk Konsek; 20.09.2010
comment
Это только с тех пор, как они начали использовать индексатор. Когда на этот вопрос был первоначально дан ответ, центральный каталог вручную поддерживался в SVN. - person Matthew McCullough; 23.02.2011