我想在执行mvn清理构建生命周期后从项目中删除目标目录。我观察到在执行mvn清理后,目标文件夹下生成的资源会被删除,但目标目录不会。任何建议都对我很有帮助。下面是我在项目中使用的pom.xml的代码片段
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.0.0</version>
<goals>
<goal>clean</goal>
</goals>
<configuration>
<filesets><fileset>
<directory>${basedir}/target</directory>
</fileset></filesets>
</configuration>
</plugin>
3条答案
按热度按时间bvjveswy1#
mvn clean
的默认行为是删除target
目录。我不知道为什么在您的情况下它不这样做,除非您可能有父POM覆盖默认行为:从执行
mvn clean
时的Maven输出中:我甚至手动验证了它,
target
目录确实被删除了。尝试执行一个
mvn help:effective-pom
来查看默认行为是否被覆盖。8iwquhpp2#
要删除目标目录,请直接 * 从命令行 * 对项目运行mvn clean。这将按预期删除目标目录。
相比之下,由于某种原因,从Eclipse* 运行Run As〉Maven clean*会留下目标目录和子目录 classes 和 test-classes。尽管您在Eclipse中看到的控制台消息与常规的 mvn clean 相同,但这种方法似乎在幕后为maven项目重新创建了这些目录。
至于原因,我还不太确定。但似乎与.classpath文件有关。如果查看该文件,您将看到这些目录路径。还可能与创建Maven项目时添加到Eclipse中的“Maven Nature”有关(请参见Properties〉Project Natures〉Maven Nature)具体来说,Eclipse M2Eclipse plugin似乎是驱动“Maven Nature”的动力,包括那些源文件夹的生成。
inkz8wg93#
有时IDE可能只是在内存中出错,所以重新启动一次,它应该会解决这个问题,就像我的情况一样。