我知道这可能是maven爱好者所不希望的,但是整个'target'目录在我们的程序和部署过程中浪费了空间。我们有其他构建过程负责创建实际的部署,我目前手动删除目标目录后,每Maven构建,使其内容不会干扰我的文件搜索等...在编译后删除'target'目录
有没有办法删除这个目录自动在Maven的构建/安装结束?
谢谢,p。
我知道这可能是maven爱好者所不希望的,但是整个'target'目录在我们的程序和部署过程中浪费了空间。我们有其他构建过程负责创建实际的部署,我目前手动删除目标目录后,每Maven构建,使其内容不会干扰我的文件搜索等...在编译后删除'target'目录
有没有办法删除这个目录自动在Maven的构建/安装结束?
谢谢,p。
使用maven-清理插件这里http://maven.apache.org/plugins/maven-clean-plugin/examples/delete_additional_files.html
<project>
[...]
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>auto-clean</id>
<phase>install</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
您应该简单地在最后的清理目标添加到您的Maven目标。
mvn install clean
与清理插件的问题是,如果你想在构建结束时运行的清洁这取决于你叫之初,其目标。例如,你调用了mvn包,你需要有一个不存在的后期包,或者如果你调用了mvn install,你必须安装后期不存在的阶段。
@khmarbaise - 清洁插件与阶段安装/包即使在结束。你不需要安装后/后期包。但它确实需要匹配所调用的原始阶段。 – JoseK 2010-05-26 11:02:03
最简单的方法是简单地将“clean”添加到普通构建命令的末尾。例如。 mvn干净安装干净。
如果你想要到j 乌斯删除目标文件夹中的一些目录,你必须创建一些结构是这样的。
这个例如只删除文件夹中的所有内容:
excludeDefaultDirectories允许到n OT删除完整的目标文件夹。
我用它来清理lint分析前的目标文件夹。
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>Deleting all unnecessary files before lint analysis</id>
<phase>verify</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>target/unpack</directory>
<followSymlinks>false</followSymlinks>
<excludes>
<exclude>*</exclude>
</excludes>
</fileset>
<fileset>
<directory>gen-external-apklibs</directory>
<followSymlinks>false</followSymlinks>
<excludes>
<exclude>*</exclude>
</excludes>
</fileset>
</filesets>
<verbose>true</verbose>
</configuration>
</plugin>
这将在构建开始时运行清洗,而不是结束。 – khmarbaise 2010-05-26 10:24:31
@khmarbaise - 我改变了安装阶段,甚至在最后阶段也能正常工作。但我打电话给mvn安装。为了使mvn包能够工作,我需要使用maven-clean-plugin作为包的阶段,并在最后完成。 – JoseK 2010-05-26 10:57:23
只需要小心,在部署或安装阶段之前不要删除,项目将变得毫无用处。 – sal 2010-05-27 02:00:47