-1

当我发出 mvn war:war 时,我只想创建 war 文件。目标文件夹下不需要展开的项目文件夹。如何限制这个?

mvn战争:战争

4

1 回答 1

1

“exploded project folder”并不是为了您的查看方便——它看起来是这样的,因为Maven 构建生命周期是如何构建的

Maven 构建运行一系列阶段,并且在后续阶段执行的插件目标对它们将在target文件夹中找到的内容有预期 - 这就是构建过程发生的地方。

因此,例如,war:war目标绑定到package阶段

在此之前有一个compile阶段,maven-compiler-plugin将在其中运行。这就是你编译的 Java 类最终在你的WAR- 它们被编译成.class文件到.targetwarWAR

实现您想要的结果的唯一方法是添加一个antrun任务或类似的,这将打包删除除 . 之外的所有WAR内容WAR

但这是个坏主意。如果您仍然不知道原因,请考虑以下几点:

  • 如果您将构建扩展为在war目标之后包含其他内容(例如 in verify),会发生什么情况,这期望构建的临时工件仍然存在于 中target?或者,更好的是,使用需要jetty:run-exploded这些文件的目标?
  • 如果您的 IDE 依赖其中一些文件来正确处理您的项目,会发生什么?
于 2013-08-20T23:18:44.913 回答