在mvn清理阶段删除maven中的目标目录

gdrx4gfi  于 2022-12-26  发布在  Maven
关注(0)|答案(3)|浏览(376)

我想在执行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>
bvjveswy

bvjveswy1#

mvn clean的默认行为是删除target目录。我不知道为什么在您的情况下它不这样做,除非您可能有父POM覆盖默认行为:
从执行mvn clean时的Maven输出中:

[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ xxx ---
[INFO] Deleting C:\dev\TradingStationT2\t2-platform\misc\target

我甚至手动验证了它,target目录确实被删除了。
尝试执行一个mvn help:effective-pom来查看默认行为是否被覆盖。

<plugin>
  <artifactId>maven-clean-plugin</artifactId>
  <version>2.6.1</version>
  <executions>
    <execution>
      <id>default-clean</id>
      <phase>clean</phase>
      <goals>
        <goal>clean</goal>
      </goals>
    </execution>
  </executions>
</plugin>
8iwquhpp

8iwquhpp2#

要删除目标目录,请直接 * 从命令行 * 对项目运行mvn clean。这将按预期删除目标目录。
相比之下,由于某种原因,从Eclipse* 运行Run As〉Maven clean*会留下目标目录和子目录 classestest-classes。尽管您在Eclipse中看到的控制台消息与常规的 mvn clean 相同,但这种方法似乎在幕后为maven项目重新创建了这些目录。
至于原因,我还不太确定。但似乎与.classpath文件有关。如果查看该文件,您将看到这些目录路径。还可能与创建Maven项目时添加到Eclipse中的“Maven Nature”有关(请参见Properties〉Project Natures〉Maven Nature)具体来说,Eclipse M2Eclipse plugin似乎是驱动“Maven Nature”的动力,包括那些源文件夹的生成。

inkz8wg9

inkz8wg93#

有时IDE可能只是在内存中出错,所以重新启动一次,它应该会解决这个问题,就像我的情况一样。

相关问题