转移罐子&使用Maven在一个远程服务器文件夹中进行战争

时间:2010-11-26 10:30:50

标签: maven-2 maven maven-release-plugin maven-deploy-plugin

我正在将现有项目转换为Maven&他们的构建和发布过程。 我的结构是这样的 ParentProj -Child1 -Child2 -ChildWeb3 -ChildWeb4

我不确定maven最佳做法是什么,但我需要 1.分别标记我的所有子项目 2.当我通过部署服务器(mvn release:prepare release:perform -B)转移到它时,它会创建一种存储库 我想在远程服务器中创建一个文件夹&把所有的罐子放在一起内部的战争只有&没有其他文件 3.还有什么方法可以在我的远程服务器中执行shell脚本

等待您的指导

1 个答案:

答案 0 :(得分:1)

您需要做的事情违反了Maven惯例和推荐的最佳做法。要记住,Maven确实构建和发布,而不是部署。是的,有一个部署目标,但该目标获取从构建或发布产生的工件,并将其推送到存储所有工件版本的远程Maven存储库。当您执行mvn发布时,该存储库结构是您的JAR和WAR文件最终位于不同文件夹中的原因:执行,这是要求maven执行mvn部署的另一种方式。

现在,如果你想继续使用Maven的做法,你应该编写另一个脚本(shell,Ant,你的选择)进行部署,从远程Maven工件库获取那些JAR和WAR文件并将它们捆绑起来您希望的方式并将其部署到您希望安装它们的服务器上。

现在,您可以将maven更改为按照您想要的方式进行操作,但是您必须创建另一个项目/模块,该项目/模块仅以您希望的方式将JAR和WAR文件捆绑为存档文件(tar,gzip,zip)。 Maven程序集插件是完成这项工作的工具。您可以找到有关程序集插件here的更多信息。现在,请记住,mvn release:perform仍会将存档推送到Maven存储库。您仍然需要部署脚本来从远程Maven存储库获取存档文件,并将其解压缩到要将其部署到的服务器。