Hi here comes a new proposition for the future descriptor.
I made it the most simpler i can think.
Please comment it.
Regards,
Raphaël
<archetype id="archetype-artifact-id" partial="true|false" >
<!-- id is mandatory and partial is optional (defaults to false) -->
<requiredProperties>
<!--
optional element as common required properties are
groupId, artifactId, version and package
(aliased with packageName when calling the mojo)
-->
<!-- maybe in flat mode -->
<requiredProperty key="propKey" default-value="string to replace" />
<!-- key is mandatory and default-value is optional -->
</requiredProperties>
<fileSets>
<!-- maybe in flat mode -->
<fileSet filtered="true|false" packaged="true|false" />
<!-- filtered is optional (defaults to true) -->
<!-- packaged is optional (defaults to true) -->
<directory>src/main/java</directory>
<!-- directory is mandatory -->
<includes>
<include>**/*.java</include>
</includes>
<!-- includes is optional (defaults to "**/*") -->
<excludes>
<exclude>Main.java</exclude>
</excludes>
<!-- excludes is optional (defaults to "") -->
</fileSet>
<!--
the generated project's pom.xml file don't have to
be defined in the fileSet as it is mandatory to have
this file for a maven project (even partial ones)
and therefore, the generation will always try to generate
one using filters on it.
-->
</file-sets>
<modules>
<!-- modules is optional -->
<module id="module-artifact-id">
<!-- id is mandatory -->
<fileSets/>
<!-- fileSets is the same as in archetype -->
<modules/>
<!-- modules is the same as in archetype -->
</module>
</modules>
</archetype>