There is an existing issue for this approach, located on Codehaus JIRA #ARCHETYPE-57, but all instructions listed in this ticket failed for me. Also the blog post of marekdec How to get maven archetype to generate empty directories fails for me.
The trick within the archetype.xml
with the trailing /
doesnt works for me:
<resources>
<resource>src/main/webapp/</resource>
Unable to find resource 'archetype-resources/src/main/webapp/'
Also the fileSet
directory in archetype-metadata.xml
does not work for me:
<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/webapp/</directory>
</fileSet>
I use the following maven-archetype-plugin to create my custom archetype.
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:create
Is there any other solution? Or did i miss something? Thanks
I did a quick test and... it worked for me. First, I created an archetype:
$ mvn archetype:generate -B -DarchetypeArtifactId=maven-archetype-archetype \
-DgroupId=com.stackoverflow \
-DartifactId=Q2786966 \
-Dversion=1.0-SNAPSHOT \
I renamed the archetype.xml
into archetype-metadata.xml
(the former is for Archetype 1.0.X, the later is for Archetype 2.0.X) so the project looks like:
$ 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
And archetype-metadata.xml
contains:
<?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>
Then I installed the archetype and used it to create a project:
$ 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
And the resulting project looks like this:
$ tree my-artifact/ my-artifact/ ├── pom.xml └── src └── main ├── java │ └── my-group │ └── App.java └── webapp
The empty webapp directory is there.