如何在执行mvn命令时跳过执行maven-war-plugin?
基于json
,看来我应该可以通过使用 -Dmaven.war.skip = true 运行以下内容来做到这一点:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
try {
MyRequiredService mrs = new MyRequiredService();
mrs.connect(); // This will throw if it fails
run(MyApplication.class, args);
} catch(MyException e) {
System.out.println("Failed to connect to MyRequiredService!");
}
}
}
但是当我这样做时,仍然会执行maven-war-plugin。
同样奇怪的是,当我从pom完全删除maven-war-plugin时,它仍然被执行。这让我想知道为什么maven-war-plugin会被执行,因为我的pom.xml中没有提到它。
所以也许更好的问题是:如果我没有将maven-war-plugin列为插件,是什么将其引入项目中?
答案 0 :(得分:0)
事实证明,删除我的pom包装以战争(<!--<packaging>war</packaging>-->
)可以防止执行maven-war-plugin。而是执行maven-jar-plugin。那不是我真正想要的(我只想通过mvn verify
运行集成测试而不会花费太长时间。但是它至少运行得更快。
答案 1 :(得分:0)
您需要覆盖 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 中的阶段绑定。
阅读链接: