Maven clean忽略单个文件

时间:2012-10-24 17:03:36

标签: maven maven-plugin

我有一个Maven项目,它是许多子项目的集合。该项目使用maven javadoc插件将所有子项目javadoc聚合到target/文件夹中的单个目录中。我在target/文件夹中有一个额外的文件,我希望保留javadoc页面。但是,每次运行clean时,都会删除此文件。我想知道是否有办法删除整个目标目录并只留下一个文件。我的插件目前配置如下:

<plugin>
  <artifactId>maven-clean-plugin</artifactId>
    <execution>
      <executions>
        <id>default-clean</id>
        <configuration>
          <excludeDefaultDirectories>true</excludeDefaultDirectories>
            <filesets>
              <fileset>
                <directory>target</directory>
                <excludes>
                  <exclude>path/to/myFile.xml</exclude>
                </excludes>
                <followSymlinks>false</followSymlinks>
              <fileset>
           </filesets>
         </configuration>
       <phase>initialize</phase>
       <goals>
         <goal>clean</goal>
       </goals>
     </execution>
   </executions>
</plugin>

我看到了类似的问题here,但解决方案似乎对我没用。

3 个答案:

答案 0 :(得分:1)

将该静态文件放在资源文件夹中,让maven-resources-plugin将其复制到特定目标文件夹。

答案 1 :(得分:1)

我有同样的需求,在玩了一段时间后,我发现了一个可行的解决方案,可以避免删除目标文件夹中的特定文件。

假设您不想删除do_not_delete文件夹中的文件target,此配置适用于我:

<plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <excludeDefaultDirectories>true</excludeDefaultDirectories>
        <filesets>
            <fileset>
                <directory>target</directory>
                <followSymlinks>false</followSymlinks>
                <useDefaultExcludes>false</useDefaultExcludes>
                <excludes>
                    <exclude>do_not_delete</exclude>
                </excludes>
            </fileset>
        </filesets>
    </configuration>
</plugin>

答案 2 :(得分:0)

如您所述,可以从您的项目中明确排除或包含文件。你对你提供的排除路径持积极态度吗?

<filesets>
  <fileset>
    <directory>src/main/generated</directory>
    <followSymlinks>false</followSymlinks>
    <useDefaultExcludes>true</useDefaultExcludes>
    <includes>
      <include>*.java</include>
    </includes>
    <excludes>
      <exclude>MyPathRelativeToDirectoryTag/myFile.xml</exclude>
    </excludes>
  </fileset>
</filesets>