Uploaded image for project: 'Maven Archetype'
  1. Maven Archetype
  2. ARCHETYPE-498

Ability to use properties in include and exclude pattern in fileset

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.4
    • None
    • Generator
    • all
    • Patch

    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>
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            olivguillet Olivier GUILLET
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: