自定义Maven清理文件集不工作



我已经创建了一个名为"dist"的额外目标目录,我正在向其中复制一些构建工件。因为它不在默认的目标目录中,所以我根据删除附加文件说明为插件添加了一个适当的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清理"之后仍然保留。我尝试了许多变体,并检查了"mvn help:effective-pom"或"mvn -X"调试输出的输出,我发现:

  1. 配置显示在子模块的有效pom中
  2. 没有错误信息
  3. 调试输出中没有符号表示"dist"目录及其内容。
  4. <directory>${basedir}/dist</directory>这样的显式引用没有区别。
  5. 同样,使用或多或少显式的<include>引用,如".jar"或"*/*.txt"没有区别。

我使用maven 3.0.3,清洁插件2.5。我试了2.4,以防万一。没有区别。还有,没有权限问题。

我在Google上浏览了几十个例子,都只是重复文档的说明。我对Maven比较陌生,还在学习中。我是否忽视了一些显而易见的东西?谢谢。

您需要在<filesets>标签中包含<fileset>标签

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <configuration>
        <filesets>
            <fileset>
                <directory>dist</directory>
            </fileset>
        </filesets>
    </configuration>
</plugin>

几乎,

这是一个工作的:

<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>

尝试使用

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

比如

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

使用Maven 2.2.1

可以:

    <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>

相关内容

  • 没有找到相关文章

最新更新