2011-01-25 2 views
17

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

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

ответ

8

Почему бы не использовать сам сайт maven?

http://maven.apache.org/guides/mini/guide-creating-archetypes.html

+3

Это только дает мне основы. Я бы даже принял определение архетипа с открытым исходным кодом, которое я могу использовать в качестве шаблона для того, что я хочу сделать. – menapole

+1

так жаль мой плохой, я неправильно понял последнюю часть «простые инструкции о том, как сделать очень простые проекты». – fmucar

+0

вы хотите создать sth как appfuse, но с maven после этого http://static.appfuse.org/? – fmucar

7

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

HowToCreateMavenArchetypeFromProject

1

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

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

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

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

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

Благодаря

3

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

если вы хотите создать пакет com.company.base. dal.dao, мы называем com.company.base является корневым пакетом, dal.dao является основным пакетом, а затем просто положить файл шаблон Java под SRC/основной/Java/дал/дао и настроить packaged="true" в META-INF/Maven/архетипа-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 после выполнения МВН архетип: генерировать, он создаст пакет Java как COM/Алибаба/Китай/дал/дао /sample.java

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

package ${package}.dal.dao; 

архетип плагин заменит $ {пакет} с -Dpackage в качестве матрицы скорости

+0

Спасибо, это помогло мне, но мне нужно было изменить кодировку на «UTF-8». Кроме того, ссылка мертва, поэтому хорошо, что вы включили в ответ достаточную информацию. – antonyh

+0

O Да, GBK должен содержать китайский символ, UTF-8 должен быть в порядке –

1

из Maven Документационный: http://maven.apache.org/archetype/archetype-models/archetype-descriptor/archetype-descriptor.html

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

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

__artifactId___local.properties

... при генерации proyect с артефакта = Foo он будет содержит этот файл:

foo_local.properties

+0

Предупреждение - регулярное выражение слишком жадное, поэтому, если у вас есть имя файла Blah___artifactId__ (тройное подчеркивание посередине), он будет терпеть неудачу с глупым сообщением, в котором говорится: «Может 't найдите переменную _artifactId', когда вам действительно понадобится буквальное подчеркивание спереди. –

+1

, в этом случае вы можете взломать создание свойства maven underscore = _ и назовите файл как Blah__underscore____artifactId_ - –

+0

Согласовано, но я пробовал именно это, но без успеха. Теперь я решил изменить соглашение об именах, чтобы избавиться от символов подчеркивания. –

Смежные вопросы