如何从Maven的目标目录中删除生成的构建工件?

时间:2009-10-12 06:14:13

标签: maven-2 maven-plugin

如何从Maven的目标目录中删除生成的构建工件? Maven为目标目录生成jar或war文件。我想在maven将jar / war文件安装到本地存储库之后删除该文件(也就是说,在maven执行'install'目标之后)。删除可能发生在安装目标或我手动执行的单独目标。

请注意,我希望保留目标目录的其他部分,例如target / site和target / surefire-reports。

3 个答案:

答案 0 :(得分:18)

只需使用clean插件并在安装阶段后执行:

  <plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>2.2</version>
    <executions>
      <execution>
        <id>auto-clean</id>
        <phase>install</phase>
        <goals>
          <goal>clean</goal>
        </goals>
        <configuration>
          <filesets>
            <fileset>
              <directory>${project.build.outputDirectory}</directory>
              <includes>
                <include>**/*.jar</include>
              </includes>
            </fileset>
           </filesets>
         </configuration>
      </execution>
    </executions>
  </plugin>

答案 1 :(得分:0)

Maven没有内置任何东西可以做到这一点。您可以使用antrun插件在删除工件后执行Ant脚本,或使用exec插件使用命令行删除工件,或编写自己的插件。< / p>

我建议做这些事情的价值很小,如果有的话。 Maven旨在在target中放置中间和最终工件,以使后续构建更有效。没有任何可用的原因已经表明这没什么价值。如果它对你有价值,你有几个选择。

答案 2 :(得分:0)

我知道我有点晚了。但我想问题是,maven项目会自动归档工件。就我而言,我禁用了自动存档,并使用后期构建操作手动存档了工件。这样,只存档我感兴趣的工件。我愿意将生成的工件留在磁盘上,直到下一次构建运行。