当我发出 mvn war:war 时,我只想创建 war 文件。目标文件夹下不需要展开的项目文件夹。如何限制这个?
mvn战争:战争
“exploded project folder”并不是为了您的查看方便——它看起来是这样的,因为Maven 构建生命周期是如何构建的。
Maven 构建运行一系列阶段,并且在后续阶段执行的插件目标对它们将在target
文件夹中找到的内容有预期 - 这就是构建过程发生的地方。
因此,例如,war:war
目标绑定到package
阶段。
在此之前有一个compile
阶段,maven-compiler-plugin
将在其中运行。这就是你编译的 Java 类最终在你的WAR
- 它们被编译成.class
文件到.target
war
WAR
实现您想要的结果的唯一方法是添加一个antrun
任务或类似的,这将在打包后删除除 . 之外的所有WAR
内容WAR
。
但这是个坏主意。如果您仍然不知道原因,请考虑以下几点:
war
目标之后包含其他内容(例如 in verify
),会发生什么情况,这期望构建的临时工件仍然存在于 中target
?或者,更好的是,使用需要jetty:run-exploded
这些文件的目标?