This part explains how to use the Maven File Management API in a Maven Plugin.
The first step is to add the File Management API as a Maven dependency, i.e. in the pom.xml:
<project> ... <dependencies> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>file-management</artifactId> <version>1.2</version> </dependency> ... </dependencies> ... </project>
The second step is to create your MOJO and add a FileSet object:
/** * My MOJO * * @goal myGoal */ public class MyMojo extends AbstractMojo { /** * A list of <code>fileSet</code> rules to select files and directories. * * @parameter */ private List filesets; /** * A specific <code>fileSet</code> rule to select files and directories. * * @parameter */ private FileSet fileset; ... }
To use the FileSet object, you need to instantiate the FileSetManager.
FileSetManager fileSetManager = new FileSetManager(); String[] includedFiles = fileSetManager.getIncludedFiles( fileset ); String[] includedDir = fileSetManager.getIncludedDirectories( fileset ); String[] excludedFiles = fileSetManager.getExcludedFiles( fileset ); String[] excludedDir = fileSetManager.getExcludedDirectories( fileset ); fileSetManager.delete( fileset );
The last step is the Maven Plugin configuration.
<project> ... <build> <plugins> <plugin> <groupId>your-plugin-groupId</groupId> <artifactId>your-plugin-artifactId</artifactId> <version>your-plugin-version</version> <configuration> <!-- List of filesets --> <filesets> <fileset> <directory>some/relative/path</directory> <includes> <include>**/*.txt</include> </includes> <excludes> <exclude>**/log.log</exclude> </excludes> <followSymlinks>false</followSymlinks> </fileset> </filesets> <!-- Given fileset --> <fileset> <directory>some/relative/path</directory> <includes> <include>**/*.txt</include> </includes> <excludes> <exclude>**/log.log</exclude> </excludes> <followSymlinks>false</followSymlinks> </fileset> ... </configuration> </plugin> ... </plugins> </build> ... </project>