【问题标题】:delete target directory in maven during mvn clean phase在 mvn clean 阶段删除 Maven 中的目标目录
【发布时间】:2017-06-08 23:16:49
【问题描述】:

我想在执行 mvn clean build 生命周期后从项目中删除目标目录。 我观察到在目标文件夹下执行 mvn clean 生成的资源后被删除但不是目标目录。 任何建议对我都有很大帮助。 下面是我在项目中使用的 pom.xml 中的代码 sn-p

 <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>

【问题讨论】:

  • 添加应该执行插件的阶段
  • 即使添加阶段也注意到目标文件夹不会被删除
  • 您是从 IDE 还是在命令行运行 mvn clean?

标签: maven pom.xml


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    相比之下,出于某种原因,运行 Run As > Maven clean from Eclipse 会留下目标目录和子目录 classestest -类。尽管您在 Eclipse 中看到的控制台消息与常规 mvn clean 相同,但似乎这种方法在幕后为 maven 项目重新创建了这些目录。

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

    【讨论】:

      【解决方案3】:

      mvn clean 的默认行为是删除target 目录。我不确定为什么它在你的情况下不这样做,除了你可能有覆盖默认行为的父 POM:

      来自 Maven 在执行 mvn clean 时的输出:

      [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>
      

      【讨论】:

      • 手动检查了目标目录是否已从“D:\Project\Workspace\AntToMavenConversion”中删除,但在已导入项目的 Eclipse 中,我可以看到目标文件夹
      • 你是在做Eclipse菜单Project &gt; Clean...还是右键项目Run As &gt; Maven clean
      • 正在执行右键单击项目并运行为> maven clean
      • 好的,那么这更多是 M2Eclipse 插件的问题,而不是 Maven。
      猜你喜欢
      • 2017-04-22
      • 2018-05-28
      • 2017-10-19
      • 2018-04-14
      • 2015-11-26
      • 2015-04-23
      • 1970-01-01
      • 2012-11-29
      • 2021-06-20
      相关资源
      最近更新 更多