Maven战争:限制战争

时间:2013-08-20 21:59:40

标签: java maven

当我发布mvn war:war时,我只希望创建war文件。目标文件夹下无需展开项目文件夹。如何限制?

战争:战争

1 个答案:

答案 0 :(得分:1)

“爆炸项目文件夹”不适合您的观看 - 由于how the Maven build lifecycle is constructed,它看起来像是这样。

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

所以,例如,war:war goal is bound to the package phase

之前有compile阶段,maven-compiler-plugin将在其中运行。这就是您编译的Java类最终在WAR中的结果 - 它们被编译到.class个文件到target的子目录,然后,war插件选择将它们打包并打包到WAR

实现所需结果的唯一方法是添加antrun任务或类似内容,删除WAR之外的所有内容,之后 {{ 1}}已打包

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

  • 如果您将构建扩展为在WAR目标之后包含其他内容(例如,在war中),那么会发生什么情况,这会导致构建的暂时工件仍然存在于verify中?或者,更好的是,使用像jetty:run-exploded这样要求这些文件的目标?
  • 如果您的IDE依赖某些文件来正确处理您的项目会发生什么?