Любые хорошие передовые руководства о том, как создавать новые архетипы maven?

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

Все, что я могу найти, это очень простые инструкции о том, как создавать очень простые проекты.

Ответы

Ответ 2

Я думаю, что нашел сайт, который помогает мне немного больше, когда я понял, что шаблоны Velocity используются как часть процессов архетипа.

HowToCreateMavenArchetypeFromProject

Ответ 3

Я думаю, что мы столкнулись с одной и той же проблемой, наконец, я разрешил ее с разъяснением этой статьи

Предполагая, что вы хотите сгенерировать пакет com.company.base. dal.dao, мы называем com.company.base корневым пакетом, dal.dao является основным пакетом, тогда просто поместите свой шаблонный файл java в src/main/java/dal/dao и настройте packaged="true" в META-INF/maven/archetype-metadata.xml, как показано ниже

            <fileSet filtered="true" packaged="true" encoding="GBK"><!--packaged="true" tells maven to copy the core package in to root package while creating a project.-->
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
            </includes>
        </fileSet>

скажем, если вы установите -Dpackage=com.alibaba.china после выполнения mvn archetype: generate, он создаст исходный пакет java в качестве com/alibaba/china/dal/dao/sample.java

как указать информацию о пакете префикса в sample.java, просто используйте ${package}, как показано ниже

package ${package}.dal.dao;

плагин archetype заменит ${package} на -Dpackage как шаблон скорости

Ответ 4

Даже я ищу то же самое. Даже я считаю, что главная страница Maven очень проста и не соответствует нашему требованию.

Я даже попробовал HowToCreateMavenArchetypeFromProject Но у меня все еще есть один вопрос. Как вызвать конкретный файл архетипа, когда генерируется проект этого типа архетипа. Чтобы быть конкретным, если у меня есть класс java класса App.java, как вызвать его при создании проекта?

Что происходит с create-archetype-from-project, он создает проект с теми же файлами и структурой каталогов, и нам нужно снова запустить это, чтобы получить это в действии.

Кроме того, ${groupId} и такие вещи работают только в файлах maven. Что делать, если у меня есть файл свойств и вы хотите использовать artifactId, введенный пользователем?

Дайте мне знать, если вы встретите любой хороший материал. Между тем, я также дам вам знать, когда найду какое-либо решение.

Спасибо

Ответ 5

из maven documentacion: http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html

Набор файлов определяет способ, которым файлы проекта, расположенные в файле jar, используются плагином Archetype для генерации проекта. Если имя файла или каталога содержит шаблон свойство, оно заменяется соответствующим значением свойства.

если вы можете назвать файл как

__ артефакта ___ local.properties

... когда вы создаете proyect с помощью artifactId = foo, он будет содержать этот файл:

foo_local.properties