自定义Maven清理文件集无法正常工作

时间:2013-03-11 23:41:53

标签: maven fileset

我创建了一个名为“dist”的额外目标目录,我正在复制一些构建工件。因为它不在默认目标目录中,所以我根据插件的Delete Additional Files说明添加了一个适当的clean插件配置,如下所示:

        <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <fileset>
                    <followSymlinks>false</followSymlinks>
                    <directory>dist</directory>
                    <includes>
                        <include>*</include>
                    </includes>
                </fileset>
            </configuration>
        </plugin>

但是“dist”目录及其内容在任何“mvn clean”之后仍然存在。我尝试了很多变种,并检查了“mvn help:effective-pom”或“mvn -X”调试输出的输出,我发现:

  1. 配置显示在子模块的有效pom中。
  2. 没有错误消息
  3. 调试输出中有“dist”目录或其内容的符号。
  4. <directory>${basedir}/dist</directory>这样的明确引用没什么区别。
  5. 同样,使用或多或少明确的<include>引用,例如“ .jar”或“ * / * .txt”没有任何区别。
  6. 我正在使用maven 3.0.3,干净的插件2.5。我试过2.4,以防万一。没有不同。此外,没有许可问题。

    我在Google上扫描过几十个例子,而且只是重复文档的说明。我对Maven比较新,还在学习。我对明显的东西视而不见吗?感谢。

4 个答案:

答案 0 :(得分:2)

您需要在<fileset>代码

中加入<filesets>标记
<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <configuration>
        <filesets>
            <fileset>
                <directory>dist</directory>
            </fileset>
        </filesets>
    </configuration>
</plugin>

答案 1 :(得分:1)

概,

这是一个有效的工作:

<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
    <filesets>
        <fileset>
            <followSymlinks>false</followSymlinks>
            <directory>${basedir}</directory>
            <includes>
                <include>dist/**</include> 
                <include>target</include> 
            </includes>
        </fileset>
    </filesets>
</configuration>

答案 2 :(得分:0)

尝试使用而不是:

                  <includes>
                        <include>*</include>
                  </includes>

这样的东西
                   <includes>
                        <include>**/*.*</include>
                   </includes>

使用Maven 2.2.1

对我有用

答案 3 :(得分:0)

这将有效:

    <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.5</version>
        <configuration>
            <fileset>
                <followSymlinks>false</followSymlinks>
                <directory>${basedir}</directory> <!-- Careful with this -->
                <includes>
                    <include>dist</include> 
                    <include>target</include> 
                </includes>
            </fileset>
        </configuration>
    </plugin>