6

我正在尝试使用“maven-clean-plugin”删除位于 /my/path 文件夹中的其他文件。

<plugin>
   <artifactId>maven-clean-plugin</artifactId>
   <executions>
       <execution>
           <id>clean-on-cleaning</id>
           <phase>clean</phase>
           <goals>
               <goal>clean</goal>
           </goals>
           <configuration>                      
               <filesets>
                   <fileset>
                       <directory>target/dart</directory>
                   </fileset>
                   <fileset>
                       <directory>src/main/dart/.pub</directory>
                   </fileset>
                   <fileset>
                       <directory>src/main/dart/build</directory>
                   </fileset>
                   <fileset>
                       <directory>${env.APPDATA}/Pub/Cache</directory>
                   </fileset>
                   <fileset>
                       <directory>src/main/dart/packages</directory>    
                       <followSymlinks>false</followSymlinks>
                   </fileset>
               </filesets>
           </configuration>
       </execution>
   </executions>

“src/main/dart/packages”包含链接。其中一个链接指向“src/main/dart/lib”文件夹。我已经设定:

<followSymlinks>false</followSymlinks> 

所以它不应该删除 lib 目录中的文件。但不幸的是,它确实如此。问题可能出在哪里?

环境配置:

  • Maven:apache-maven-3.3.3
  • Java 版本:1.7.0_55(也在 1.8.0_51 上尝试过)
  • 操作系统名称:windows 7
  • 版本:6.1
  • 拱门:amd64
4

1 回答 1

1

从您的配置来看,您使用的maven-clean-plugin是来自clean生命周期默认绑定的版本。这是 Maven 3.3.3 的 2.5 版本

对于此版本,存在一个maven-clean-plugin不尊重followSymLinksWindows 上的属性的错误:它是MCLEAN-58

Maven Clean Plugin 忽略 Windows 上的 followSymLinks 参数

根据此错误报告,这已在版本 2.6.1 中修复,适用于 Java >= 7 的用户,这是您的情况。

因此,您只需要将maven-clean-plugin您正在使用的版本更新为 2.6.1。当前版本是 3.0.0,因此您不妨更新到该版本:

<plugin>
   <artifactId>maven-clean-plugin</artifactId>
   <version>3.0.0</version>
   <!-- rest of configuration -->
</plugin>
于 2016-02-23T19:09:02.243 回答