| ------ |
| Delete Additional Files Not Exposed to Maven |
| ------ |
| Mike Perham |
| <mperham@apache.org> |
| ------ |
| 2007-11-14 |
| ------ |
| |
| ~~ Licensed to the Apache Software Foundation (ASF) under one |
| ~~ or more contributor license agreements. See the NOTICE file |
| ~~ distributed with this work for additional information |
| ~~ regarding copyright ownership. The ASF licenses this file |
| ~~ to you under the Apache License, Version 2.0 (the |
| ~~ "License"); you may not use this file except in compliance |
| ~~ with the License. You may obtain a copy of the License at |
| ~~ |
| ~~ http://www.apache.org/licenses/LICENSE-2.0 |
| ~~ |
| ~~ Unless required by applicable law or agreed to in writing, |
| ~~ software distributed under the License is distributed on an |
| ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| ~~ KIND, either express or implied. See the License for the |
| ~~ specific language governing permissions and limitations |
| ~~ under the License. |
| |
| ~~ NOTE: For help with the syntax of this file, see: |
| ~~ http://maven.apache.org/doxia/references/apt-format.html |
| |
| Delete Additional Files Not Exposed to Maven |
| |
| The Maven Clean Plugin will delete the <<<target>>> directory by default. You may configure |
| it to delete additional directories and files. The following example shows how: |
| |
| +-------- |
| <build> |
| [...] |
| <plugin> |
| <artifactId>maven-clean-plugin</artifactId> |
| <version>${project.version}</version> |
| <configuration> |
| <filesets> |
| <fileset> |
| <directory>some/relative/path</directory> |
| <includes> |
| <include>**/*.tmp</include> |
| <include>**/*.log</include> |
| </includes> |
| <excludes> |
| <exclude>**/important.log</exclude> |
| <exclude>**/another-important.log</exclude> |
| </excludes> |
| <followSymlinks>false</followSymlinks> |
| </fileset> |
| </filesets> |
| </configuration> |
| </plugin> |
| [...] |
| </build> |
| +--------- |
| |
| <<Note:>> The <<<directory>>> in the <<<fileset>>> is a relative path inside a project, in other words, |
| |
| +-------- |
| <directory>some/relative/path</directory> |
| +-------- |
| |
| is equivalent to: |
| |
| +-------- |
| <directory>${basedir}/some/relative/path</directory> |
| +-------- |
| |
| You could also define file set rules in a parent POM. In this case, the clean plugin adds the subproject |
| basedir to the defined relative path. |
| |
| <<Note:>> The <<<fast>>> delete method will not work for any <<<fileset>>> which defines any <<<includes>>> |
| or <<<excludes>>>, or sets <<<followSymlinks>>> to <<<false>>>, or sets <<<useDefaultExcludes>>> to <<<true>>>. |