11

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

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

4

3 回答 3

20

只需使用 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>
于 2009-10-12T06:43:50.167 回答
0

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

我认为做这些事情没有什么价值,如果有的话。Maven 旨在放置中间和最终工件,target以提高后续构建的效率。没有任何东西可以做到这一点的原因表明这没有什么价值。如果它对您有价值,您有几个选择。

于 2009-10-12T06:34:01.403 回答
0

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

于 2011-01-11T06:35:06.037 回答