Проект Maven, созданный из старого (1.x) архетипа

Я пытаюсь изучить Maven после этого Руководство по началу работы.

У меня Apache Maven 3.0.1 на Linux. Я создал следующую команду для создания первого проекта:

yes | mvn archetype:generate \
  -DarchetypeGroupId=org.apache.maven.archetypes \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DgroupId=org.obliquid.helpers \
  -DartifactId=obliquid-helpers \
  -Dversion=0.1

Однако на выходе я прочитал:

[INFO] project created from Old (1.x) Archetype in dir: ...

Как я могу использовать текущую версию для Archetype? Является ли руководство, которое я читаю устаревшим?

В качестве дополнительного вопроса я заметил, что в pom.xml упоминается junit версия 3.8.1, в то время как я хотел бы использовать junit version 4.8.x - Как это изменить? Я могу просто изменить номер версии в XML?

Есть ли лучшее руководство или книга, которые вы можете предложить?

Ответ 1

Используемая вами версия, а также руководство, к которому вы обращаетесь, достаточно текущие. Вы можете проигнорировать сообщение. Созданный проект отлично работает с последним maven.

Что касается junit, вы можете соответствующим образом изменить версию зависимостей. Проект, созданный с использованием архетипа: generate, является лишь ориентировочным, который предназначен для настройки.

В дополнение к тому, что вы смотрите, вы также можете посмотреть Maven: полный справочник

Ответ 2

Если вы включили -DinteractiveMode = true в свой архетип mvn: сгенерируйте команду:

mvn archetype:generate \
    -DgroupId=org.obliquid.helpers \
    -DartifactId=obliquid-helpers \
    -Dversion=0.1 \
    -DinteractiveMode=true

вам представлен (большой) каталог доступных архетипов mvn, а также краткое описание каждого из них.

В настоящее время пара лучших простых архетипов приложения Java в этом списке:

1844: remote -> org.spilth:java9-minimalist-quickstart

и

1966: remote -> pl.org.miki:java8-quickstart-archetype

Вторая включает в себя область тестирования, в которой JUnit версии 4.11 для модульных тестов. Чтобы использовать этот архетип, вам просто нужно указать archetypeGroupId и archetypeArtifactId, как в:

mvn archetype:generate \
    -DarchetypeGroupId=pl.org.miki \
    -DarchetypeArtifactId=java8-quickstart-archetype \
    -DgroupId=org.obliquid.helpers \
    -DartifactId=obliquid-helpers \
    -Dversion=0.1

По какой-то причине mvn archetype: generate принимает archetypeVersion = 1.0, даже если метаданные архетипа указывают другую версию для последней версии/выпуска.

Чтобы указать версию архетипа помимо 1.0, вам просто нужно определить значение для свойства archetypeVersion, например.

mvn archetype:generate \
    -DarchetypeGroupId=org.apache.maven.archetypes \
    -DarchetypeArtifactId=maven-archetype-quickstart \
    -DarchetypeVersion=1.1 \
    -DgroupId=org.obliquid.helpers \
    -DartifactId=obliquid-helpers \
    -Dversion=0.1 \
    -DinteractiveMode=true

Узнайте, какие версии доступны, посетив http://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/ с помощью веб-браузера.