2012-10-24 35 views
2

我有一个Maven项目,它是多个子项目的聚合。该项目使用maven javadoc插件将所有子项目javadoc聚合到target/文件夹中的单个目录中。我在target/文件夹中有一个额外的文件,我想继续使用javadoc页面。但是,每次运行clean时,该文件都将被删除。我想知道是否有办法删除整个目标目录并只保留一个文件。我的插件是当前配置,像这样:Maven 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,但解决方案似乎并没有为我工作。

+0

这哪里是补充文件正在添加从?生成或什么? – khmarbaise

+0

补充文件是静态的,位于target/path/to/myFile.xml目录中。它补充了一些生成的html,所以我只保留它的HTML,而不必复制它。如果这个项目不是一个聚合,我可以把它放在一个src文件夹中,让它复制,但是因为它是一个聚合,我认为/目标将是我可以放置的唯一位置。 – JoshC13

回答

1

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

+0

这就是我想要做的,尽管我认为干净的插件没有简单的方法来排除文件有点奇怪! – JoshC13

+0

@ Joshc1107但是,如果你想清理,你想留下污垢吗? – SpaceTrucker

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

我有同样的需要和播放,同时用插件后,我找到了工作液为避免删除目标文件夹中的特定文件。

让我们假设你不想删除该文件do_not_deletetarget文件夹,这个配置对我的作品:

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