Подтвердить что ты не робот

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

Архетипы Maven - это "шаблоны", с помощью которых вы можете быстро сгенерировать пример выполнения данной структуры или типа проекта. Я пытаюсь скомпилировать список всех каталогов архетипа 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) Cocoon 3) Java.net 4) MyFaces 5) Tapestry 6) Scala Каталог 7) Terracotta Catalog

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

  • Архетипы Grails находятся не во внутреннем каталоге или в опубликованном archetype-catalog.xml. Не хорошее предложение.

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


Одна забавная вещь, которую я узнал, копая это. Ребята maven предоставляют хороший инструмент, который помогает людям разрабатывать архетипы для создания каталога XML: цель archetype:crawl в основном обходит локальный репозиторий Maven, который ищет Archetypes, и по умолчанию генерирует/обновляет файл 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

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

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

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

Ответ 3

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

Ответ 4

В списке архетипов 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.)