Details
Description
Give user the ability to use maven properties in fileset include / exclude pattern.
In methodProcessTemplate of class org.apache.maven.archetype.generator.DefaultFilesetArchetypeGenerator, line 770 (in version 2.4).
Adding this lines:
FileSet fileSet = iterator.next(); count++; if ( fileSet.getIncludes() != null && !fileSet.getIncludes().isEmpty() ) { final List<String> includes = new ArrayList<String>(); for ( String include : fileSet.getIncludes() ) { includes.add( replaceFilenameTokens( include, context ) ); } fileSet.setIncludes( includes ); } if ( fileSet.getExcludes() != null && !fileSet.getExcludes().isEmpty() ) { final List<String> excludes = new ArrayList<String>(); for ( String exclude : fileSet.getExcludes() ) { excludes.add( replaceFilenameTokens( exclude, context ) ); } fileSet.setExcludes( excludes ); }
is really usefull for conditional archetype generation !
So in archetype-metadata.xml
<requiredProperties> <requiredProperty key="base-name"> <defaultValue>${artifactId.substring(0,1)}</defaultValue> </requiredProperty> </requiredProperties> <fileSets> <fileSet filtered="true" packaged="false" encoding="UTF-8"> <directory>src/main/resources/directory> <includes> <include>__base-name__*.*</include> </includes> </fileSet> </fileSets>