您需要做的事情违反了 Maven 约定和推荐的最佳实践。必须记住,Maven 是构建和发布,而不是部署。是的,有一个部署目标,但该目标获取从构建或发布中生成的工件并将其推送到存储所有工件版本的远程 Maven 存储库。该存储库结构是为什么当您执行 mvn release:perform 时 JAR 和 WAR 文件最终位于不同文件夹中的原因,这是要求 maven 执行 mvn 部署的另一种方式。
现在,如果您想保持 Maven 的做事方式,您应该编写另一个脚本(shell、Ant、您的选择)进行部署,该脚本将从远程 Maven 工件存储库中获取这些 JAR 和 WAR 文件并按照您的方式捆绑它们想要并将其部署到您希望安装它们的服务器上。
现在,您可以更改 maven 以按照您的要求进行操作,但是您必须创建另一个项目/模块,该项目/模块仅以您想要的方式将 JAR 和 WAR 文件捆绑为存档文件(tar,压缩包,压缩包)。Maven 程序集插件是完成这项工作的工具。您可以在此处找到有关程序集插件的更多信息。现在,请记住, mvn release:perform 仍会将存档推送到 Maven 存储库。您仍然需要一个部署脚本来从远程 Maven 存储库中获取存档文件并将其解压缩到您要部署到的服务器。