Существует существующая проблема для этого подхода, расположенного на Codehaus JIRA #ARCHETYPE-57, но все инструкции, перечисленные в этом билете, отказавшем для меня. Также сообщение в блоге marekdec, Как заставить архетип знатока генерировать пустые сбои каталогов для меня.
Прием в archetype.xml
с запаздыванием /
не делает работ для меня:
src/main/webapp/
Unable to find resource 'archetype-resources/src/main/webapp/'
Также fileSet
каталог в archetype-metadata.xml
не работает на меня:
src/main/webapp/
Я использую следующий плагин архетипа знатока для создания моего пользовательского архетипа.
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:create
Есть ли какое-либо другое решение? Или я пропускал что-то?Спасибо
Я провел быстрый тест и ... у меня это сработало. Сначала я создал архетип:
$ mvn archetype:generate -B -DarchetypeArtifactId=maven-archetype-archetype \
-DgroupId=com.stackoverflow \
-DartifactId=Q2786966 \
-Dversion=1.0-SNAPSHOT \
Я переименовал archetype.xml
в archetype-metadata.xml
(первый для Archetype 1.0.X, последний для Archetype 2.0 .X), поэтому проект выглядит так:
$ tree . . ├── pom.xml └── src └── main └── resources ├── archetype-resources │ ├── pom.xml │ └── src │ ├── main │ │ └── java │ │ └── App.java │ └── test │ └── java │ └── AppTest.java └── META-INF └── maven └── archetype-metadata.xml
И archetype-metadata.xml
содержит:
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor name="Q2786966">
<fileSets>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/webapp</directory>
</fileSet>
<fileSet filtered="true" packaged="true">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>
Затем я установил архетип и использовал его для создания проекта:
$ mvn install
$ cd ~/tmp
$ mvn archetype:generate -B -DarchetypeGroupId=com.stackoverflow \
-DarchetypeArtifactId=Q2786966 \
-DarchetypeVersion=1.0-SNAPSHOT \
-DgroupId=my.group \
-DartifactId=my-artifact \
-Dversion=1.0-SNAPSHOT
И получившийся проект выглядит вот так:
$ tree my-artifact/ my-artifact/ ├── pom.xml └── src └── main ├── java │ └── my-group │ └── App.java └── webapp
Здесь находится пустой каталог webapp.