【问题标题】:skip the execution of maven-war-plugin跳过执行 maven-war-plugin
【发布时间】:2021-09-16 16:08:28
【问题描述】:

如何在 mvn 命令期间跳过执行 maven-war-plugin?

基于documentation,似乎我应该能够通过使用 -Dmaven.war.skip=true 运行以下内容来做到这一点:

mvn verify -P integration-test -Dmaven.war.skip=true

但是当我这样做时,maven-war-plugin 仍然会被执行。

同样奇怪的是,当我从我的 pom 中完全删除 maven-war-plugin 时,它仍然会被执行。这让我想知道为什么 maven-war-plugin 会被执行,因为我的 pom.xml 中的任何地方都没有提到它。

所以也许一个更好的问题是:如果我没有将 maven-war-plugin 列为插件,是什么将它带入项目中?

【问题讨论】:

    标签: maven-war-plugin


    【解决方案1】:

    事实证明,删除我的 pom 到 war (<!--<packaging>war</packaging>-->) 的打包会阻止 maven-war-plugin 执行。 maven-jar-plugin 被执行。这不是我真正想要的(我只想通过mvn verify 运行集成测试而不会花费太长时间。但它至少运行得更快。

    【讨论】:

      【解决方案2】:

      您需要覆盖 maven war 插件的执行配置:

                  <plugin>
                      <artifactId>maven-war-plugin</artifactId>
                      <configuration>
                          <webappDirectory>target/stampli-output/</webappDirectory>
                      </configuration>
                      <executions combine.children="override">
                      </executions>
                  </plugin>
      

      应该可以。

      为什么是这些说明?
      每个具有一些标准默认值的 pom 都有类似 super-pom 的东西。
      如果您不覆盖这些默认值,它们将与您的配置合并。
      因此也会合并执行,将插件目标与 mvn 中的阶段绑定。

      阅读链接:

      【讨论】:

        【解决方案3】:

        我在 Maven 中创建了一个简单的项目(跳过原型选择)。 Maven 创建了“src/main/java”、“src/main/resources”、“src/test/java”和“src/test/resources”文件夹。 Maven 没有在 webapps 中创建 WEB-INF 文件夹。 我还添加了 maven-war-plugin。 如何在 webapps 中获取 WEB-INF 文件夹。

        【讨论】:

        • 这是答案还是问题?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-19
        • 1970-01-01
        • 2016-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-14
        相关资源
        最近更新 更多