mvn archetype: generate предоставляет слишком много опций, и я хочу создать простую java-утилиту с тестовыми примерами junit. Я хотел бы знать, какой архетип мне здесь следует использовать?
java
maven
maven-archetype
Джейсон
источник
источник
Ответы:
Когда вы выполняете a
mvn archetype:generate
, выбор по умолчанию появляется в фигурных скобках()
, например(1274)
, если вы прокрутите вверх, чтобы увидеть, что такое # 1274, обычно это архетип Java по умолчанию, с которого нужно опробовать или начать, если вы выполняете простые проекты Java, поэтому безопасно выбрать.источник
380: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
org.apache.maven.archetypes:maven-archetype-quickstart:1.1
Я использую два архетипа. Это зависит от того, какое приложение вы создадите.
Если вам нужно веб-приложение, используйте maven-archetype-webapp , а если вам нужно простое приложение, используйте maven-archetype-quickstart . Они полезны, потому что вы без проблем сможете их расширить.
источник
Я использую команду, как показано ниже:
mvn archetype:generate -Dfilter=org.apache.maven.archetypes:
Я получу краткий список типов только от
org.apache.maven.archetypes
groupId. Хорошие для пуска ,maven-archetype-quickstart
и ,maven-archetype-webapp
как и мои предшественники сказал.источник
Вот что тебе нужно
mvn archetype:generate -DgroupId=com.example -DartifactId=foobar -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Ссылка: Сборка, запуск, командная строка проекта Java Maven
источник
Я думаю, тебе стоит использовать
maven-archetype-simple
РЕДАКТИРОВАТЬ
Согласно документации maven :
maven-archetype-quickstart
Архетип, содержащий образец проекта Maven.maven-archetype-simple
Архетип, содержащий простой проект Maven.источник
maven-archetype-simple
в моей подборке Eclipse, но вижуmaven-archetype-quickstart
. Они одинаковы?pom.xml
вручную и запускать командную строку из командной строки.Я бы начал с очень простого файла pom.xml, в котором есть только то, что вам нужно. Что-то типа
<project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-module</artifactId> <version>1</version> </project>
из http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
источник
Вы можете использовать любой из базовых от The Practical Developer:
Java 8 + часто используемые тестовые библиотеки:
mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0
Java 9 + часто используемые тестовые библиотеки
mvn archetype:generate -DgroupId=[your-project-groupId] -DartifactId=[your-project-name] -DarchetypeGroupId=com.thepracticaldeveloper -DarchetypeArtifactId=archetype-java-basic-tpd -DarchetypeVersion=1.0.0 -Djava-version=9
Они включают JUnit 4, Mockito и AssertJ, а также файл манифеста по умолчанию на случай, если вы хотите, чтобы ваш файл jar был исполняемым. Подробнее: https://thepracticaldeveloper.com/archetypes/
Отказ от ответственности: я автор этого блога.
источник
groupId
, а зачемarchetypeGroupId
?archetypeArtifactId
.maven-archetype-quickstart Архетип, который содержит образец проекта Maven. maven-archetype-simple Архетип, содержащий простой проект Maven.
если получить ошибки, исправьте это, добавив каталог архетипов maven в eclipse. Шаги приведены ниже:
ПРИМЕЧАНИЕ: ПОДКЛЮЧЕНИЕ К ИНТЕРНЕТУ НЕОБХОДИМО ВО ВРЕМЯ СОЗДАНИЯ ВАШЕГО ПЕРВОГО ПРОЕКТА MAVEN.
источник
номер архетипа по умолчанию теперь 1092 1092: remote -> org.apache.maven.archetypes: maven-archetype-quickstart (архетип, который содержит образец проекта Maven.)
источник
Вы можете рассмотреть Java Archetype : он имеет разумные значения по умолчанию для быстрого запуска Java-проекта в соответствии с лучшими практиками, включая тесты JUnit. Я задумал его как современного преемника
maven-archetype-quickstart
.Пример:
mvn archetype:generate -DarchetypeGroupId=io.github.oliviercailloux -DarchetypeArtifactId=java-archetype -DgroupId=mygroupid -DartifactId=myartifactid -DinteractiveMode=false
.Отказ от ответственности: я являюсь автором.
Для получения дополнительной информации об альтернативах, вот часть README этого проекта (он предоставляет больше ссылок, чем скопировано здесь).
Официальный архетип быстрого старта
Официальный архетип (упомянутый в Apache Maven Getting Started Guide и Apache Maven Cookbook) для простых Java-проектов - maven-archetype-quickstart или org.apache.maven.archetypes: maven-archetype-quickstart полностью.
Его следует, IMHO, считать устаревшим, поскольку он имеет несколько недостатков.
Мой архетип также обеспечивает ведение журнала по умолчанию, что, на мой взгляд, полезно, масштабируется лучше, чем sysout, и не причиняет вреда, а также Guava, который, на мой взгляд, полезно обогащает Java.
Другие архетипы быстрого старта в Maven Central
Чтобы по возможности объединить усилия и избежать бесполезного дублирования, я активно искал другие архетипы, которые преследовали бы ту же цель, что и моя: предоставить простой архетип с разумными значениями по умолчанию, чтобы легко начать современный Java-проект. (В основном это было сделано примерно в июне 2020 года.)
Общий поиск в Интернете привел меня к Практическому разработчику. Когда с ним связались, он написал мне (по электронной почте), что не работает над своим архетипом регулярно и поэтому предпочел отказаться от сотрудничества в таком проекте.
Поскольку поиск в сети не дал других полезных результатов, и поскольку я не нашел специализированного инструмента поиска, подходящего для моих нужд, я реализовал простой браузер архетипа. В нем перечислены все архетипы, доступные в Maven Central. Их слишком много для просмотра вручную, поэтому я выбрал те, чьи groupId и artifactId существовали не менее трех лет и обновлялись в течение последнего года, в надежде найти проекты, которые поддерживаются в долгосрочной перспективе, что, как я полагаю, указывает на скорее проект хорошего качества. (Конечно, этот фильтр мог пропустить архетипы хорошего качества, которые полностью соответствуют заявленной цели; у меня нет возможности узнать. В качестве примера, этот самый архетип не проходит этот фильтр, поскольку я со временем менял его artifactId.)
Затем я вручную отфильтровал полученный список на основе описаний архетипов, найденных в их POM, и дополнительно просмотрел (обычно на официальном веб-сайте) несколько многообещающих архетипов среди них. Только
com.github.ngeor:archetype-quickstart-jdk8
выяснилось, что это подходящий кандидат. Но его автор написал мне, что он «в настоящее время не особо использует / поддерживает архетип».источник