As @ AR.3 was also suggested in the answer here , the phase and purpose of clean is
By default, it detects and removes directories configured in project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory and project.reporting.outputDirectory.
However, if you want to exclude the deletion of a specific file, you can follow the reverse approach (a simple hack) to do this as follows:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>3.0.0</version> <configuration> <excludeDefaultDirectories>true</excludeDefaultDirectories> <filesets> <fileset> <directory>target</directory> <followSymlinks>false</followSymlinks> <useDefaultExcludes>true</useDefaultExcludes> <includes> <include></include> </includes> </fileset> </filesets> </configuration> </plugin>
Read more about excludeDefaultDirectories from a similar link -
Disables the removal of the default source directories configured for the project. If set to true, only files / directories selected through the parameter files will be deleted.
EDIT
Indeed, you can eliminate the deletion of a specific file using the direct approach:
<configuration> <excludeDefaultDirectories>true</excludeDefaultDirectories> <filesets> <fileset> <directory>target</directory> <includes> <include>**</include> </includes> <excludes> <exclude></exclude> </excludes> </fileset> </filesets> </configuration>
source share