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

时间:2017-01-24 08:32:17

标签: maven pom.xml

我想在执行mvn clean构建生命周期后从项目中删除目标目录。 我观察到,在执行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 个答案:

答案 0 :(得分:0)

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>

答案 1 :(得分:0)

要删除目标目录,请直接从命令行在您的项目中运行 mvn clean 。这将按预期删除目标目录。

相反,出于某种原因,从Eclipse 运行 Run As> Maven clean 会离开目标目录和子目录 classes test类。即使您在Eclipse中看到的控制台消息与常规的 mvn clean 相同,但似乎这种方法在幕后做了一些事情来为maven项目重新创建这些目录。

至于为什么,我还不确定。但这似乎与.classpath文件有关。如果查看该文件,将看到这些目录路径。它可能还与创建Maven项目时添加到Eclipse中的“ Maven Nature”有关(请参阅“属性”>“ Project Natures”>“ Maven Nature”)。具体来说,Eclipse M2Eclipse plugin似乎是推动“ Maven Nature”发展的动力,包括那些源文件夹的产生。

答案 2 :(得分:0)

有时候,IDE可能只是在内存中弄乱了,所以重新启动一次,它应该可以解决此问题,就像我的情况一样。