Архетип Maven: генерировать форсирующий groupId как структуру пакета - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь создать архетип для создания проекта Maven с некоторыми свойствами, которые будут использоваться в файлах, а также с именами файлов и структурой каталогов.

Проблема, с которой я сталкиваюсь, заключается в том, какконтролировать структуру каталогов пакетов?Независимо от того, что я пробовал до сих пор, groupId, который я указываю (который является обязательным параметром в archetype:generate), выполняет функцию структуры каталога пакета.Если я пытаюсь использовать что-то другое в моей настройке каталога archetype-resources или в имени пакета в самих файлах Java, я получаю все, что я там указал, КАК ХОРОШО, КАК groupId.

ЭффективноЯ хочу, чтобы структура моего проекта отличалась от моей groupId, но генерация архетипа, похоже, заставляет groupId влиять на структуру пакета.

Есть ли способ остановить это?

Если я использую следующую команду:

archetype:generate -DarchetypeGroupId=archetype.test -DarchetypeArtifactId=archetype-test -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.example.test.project-DartifactId=my.test.project.artifact -Dversion=1.0.0-SNAPSHOT

Со следующим fileset:

<fileSet filtered="true" packaged="true">
        <directory>src/main/java</directory>
        <includes>
            <include>**/MyClass.java</include>
        </includes>
    </fileSet>

В результате мои файлы Java будут в:

src/main/java/com/example/test/project/MyClass.java.

Я все еще хочу тот же groupId, но я хочу, чтобы мой класс находился в отдельном каталоге, например:

src/main/java/com/different/project/MyClass.java

1 Ответ

0 голосов
/ 24 октября 2018

См. Создание проекта из архетипа - пакетный режим :

Можно вызвать плагин архетипа для генерации проекта в пакетном режиме (чтобы избавиться отпобуждая).Это достигается путем предоставления подключаемого модуля Archetype всех необходимых значений в качестве системных свойств.

  • ...

  • package определяет пакетдля источников сгенерированного проекта

  • ...

Короче говоря, добавьте в свою командную строку следующее:

-Dpackage=com.different.project
...