【问题标题】:Transfer Jar & Wars in one single remote server folder using Maven使用 Maven 在一个远程服务器文件夹中传输 Jar & Wars
【发布时间】:2011-05-16 03:05:33
【问题描述】:

我正在将现有项目转换为 Maven 及其构建和发布过程。 我的结构是这样的 父项目 -儿童1 -儿童2 -ChildWeb3 -ChildWeb4

我不确定 Maven 最佳实践是怎么说的,但我是必需的 1. 分别标记我所有的子项目 2.当我通过部署服务器转移到(mvn release:prepare release:perform -B)时,它会创建某种存储库 我想在远程服务器中创建一个文件夹并将所有的罐子和战争只放在里面,没有其他文件 3.还有什么办法可以在我的远程服务器上执行shell脚本

等待您的指导

【问题讨论】:

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


    【解决方案1】:

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

    现在,如果您想保持 Maven 的处理方式,您应该编写另一个用于部署的脚本(shell、Ant、您的选择),该脚本将从远程 Maven 工件存储库中获取这些 JAR 和 WAR 文件并将它们捆绑起来以您想要的方式并将其部署到您希望安装它们的服务器上。

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

    【讨论】:

    • 感谢您帮助我...我会遵守约定的。
    • 如果您能对多模块项目的标记有所了解,也很乐意听取您的意见
    • 我想问的是。我们的项目目前非基于 maven 的 & 分别标记所有项目...现在,由于我将它们转换为 maven 模块,我不确定它们的标记,因为到目前为止,我只能标记我的父项目和父标记之后的子模块。 Maven 最佳实践怎么说.. 我应该只标记父模块还是单独标记子模块,如果是,那么如何?
    • @Irshad - 您的最后评论将提出另一个很好的问题。我鼓励将其作为一个单独的问题提出并因此获得声誉。此外,如果您对某个问题的回答满意,那么接受它是一种礼貌。
    猜你喜欢
    • 2022-11-05
    • 2016-11-17
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多