通过Maven远程部署war包

Maven 进行远程部署

使用 Maven 进行远程部署和热部署到 Tomcat 服务器,可以通过 Maven 的 cargo 插件或 tomcat7-maven-plugin 插件来实现。以下是使用 tomcat7-maven-plugin 插件的详细步骤。

1. 配置 pom.xml

在你的 Maven 项目中,编辑 pom.xml 文件,添加 tomcat7-maven-plugin 插件的配置:

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://192.168.1.100:8080/manager/text</url> <!-- 这里替换为你的远程服务器 IP -->
                    <server>tomcat</server>
                    <path>/your-app-context</path> <!-- 替换为你的应用程序上下文路径 -->
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

<url>内的后缀/manager/text必须有

<path>内一般就是你的包名/项目名

2. 配置 Tomcat 用户

在远程 Tomcat 服务器上,确保 conf/tomcat-users.xml 文件中包含正确的用户和角色配置:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="deploy" password="deploy_password" roles="manager-gui,manager-script"/>

3.在 settings.xml 中配置服务器认证信息

<servers> 标签通常放在 Maven 的 settings.xml 文件中,而不是 pom.xml 中。settings.xml 文件是 Maven 的全局配置文件,通常位于你的 Maven 安装目录下的 conf 目录中,或用户目录下的 .m2 目录中。

settings.xml 文件中配置服务器认证信息如下:

  • 找到并编辑你的 settings.xml 文件:

    • 全局配置:$MAVEN_HOME/conf/settings.xml
    • 用户配置:~/.m2/settings.xml
  • settings.xml 文件中添加服务器认证信息:

<settings>
    ...
    <servers>
        <server>
            <id>tomcat</id>
            <username>deploy</username>
            <password>deploy_password</password>
        </server>
    </servers>
    ...
</settings>

在以上配置中:

  • <url>:远程 Tomcat 服务器的 URL,替换为实际的服务器地址和端口。
  • <server>:匹配 settings.xml 中的 <id>,这里填写 tomcat
  • <path>:应用程序上下文路径。

部署和热部署命令

在命令行中执行以下命令进行部署:

mvn tomcat7:deploy

如果你需要热部署,可以使用:

mvn tomcat7:redeploy

若不想配置setting.xml    可在pom.xml中直接配置:

<project>
    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://<remote_server_ip>:8080/manager/text</url>
                    <path>/your-app-context</path>
                    <username>deploy</username>
                    <password>deploy_password</password>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

错误处理

部署过程中极大可能出现:Connection reset by peer: socket write error   错误:极有可能是tomcat等待时间过小;检查 Tomcat 配置

在 Tomcat 的 conf/server.xml 中增加或修改以下配置,以增加上传的超时时间和文件大小限制:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           maxPostSize="0"
           URIEncoding="UTF-8"
           maxHttpHeaderSize="65536"
           maxSwallowSize="-1"
           disableUploadTimeout="true"/>

maven生命各周期

Maven 是一个强大的项目管理和构建工具,采用了一种基于生命周期的构建模型。Maven 的生命周期由一系列的阶段组成,每个阶段执行一组特定的任务。这些阶段有助于确保构建过程的顺序和一致性。

以下是 Maven 构建生命周期的详细解释:

1. 清理生命周期(Clean Lifecycle)

清理生命周期包含清理项目生成的临时文件和目录的阶段。

  • pre-clean:执行一些需要在实际清理之前完成的工作。
  • clean:移除上一次构建生成的所有文件。
  • post-clean:执行一些需要在清理之后立刻完成的工作。

2. 默认生命周期(Default Lifecycle)

默认生命周期是 Maven 构建的核心部分,包含所有与编译、测试、打包、安装和部署相关的阶段。以下是默认生命周期中的主要阶段:

  • validate:验证项目是否正确且所有必要的信息都可用。
  • initialize:初始化构建状态,例如设置属性或创建目录。
  • generate-sources:生成项目所需的任何源代码。
  • process-sources:处理源代码,例如过滤资源文件。
  • generate-resources:生成项目所需的任何资源。
  • process-resources:处理资源文件,将资源文件复制到目标目录。
  • compile:编译项目的源代码。
  • process-classes:对编译生成的类文件进行后处理。
  • generate-test-sources:生成项目测试所需的任何源代码。
  • process-test-sources:处理测试源代码。
  • generate-test-resources:生成项目测试所需的任何资源。
  • process-test-resources:处理测试资源文件,将测试资源文件复制到目标测试目录。
  • test-compile:编译测试源代码。
  • process-test-classes:对编译生成的测试类文件进行后处理。
  • test:运行使用合适单元测试框架的测试。
  • prepare-package:在实际打包之前进行任何必要的操作。
  • package:将编译后的代码打包成可分发的格式,如 JAR、WAR 等。
  • pre-integration-test:为执行集成测试进行必要的设置。
  • integration-test:将代码部署到集成测试环境中,并运行集成测试。
  • post-integration-test:完成集成测试后进行的操作,例如清理集成测试环境。
  • verify:运行任何检查,验证项目包的有效性和质量。
  • install:将包安装到本地 Maven 仓库,使其他项目可以作为依赖使用。
  • deploy:将最终的包复制到远程 Maven 仓库,以共享给其他开发者和项目。

3. 站点生命周期(Site Lifecycle)

站点生命周期负责创建和发布项目站点文档。

  • pre-site:在生成项目站点之前执行的任务。
  • site:生成项目的站点文档。
  • post-site:在生成项目站点之后执行的任务,并为部署做准备。
  • site-deploy:将生成的站点文档部署到特定的服务器上。

Maven 生命周期阶段的调用顺序

在调用 Maven 命令时,如果你指定了某个阶段,Maven 会执行从生命周期开始到该阶段为止的所有阶段。例如,如果你运行 mvn install,Maven 会依次执行 validateinitializegenerate-sourcesprocess-sourcesgenerate-resourcesprocess-resourcescompileprocess-classesgenerate-test-sourcesprocess-test-sourcesgenerate-test-resourcesprocess-test-resourcestest-compileprocess-test-classestestprepare-packagepackagepre-integration-testintegration-testpost-integration-testverifyinstall 阶段。

常用的 Maven 命令

  • mvn clean:执行清理生命周期,移除上一次构建生成的所有文件。
  • mvn compile:编译项目的源代码。
  • mvn test:运行测试。
  • mvn package:将编译后的代码打包成可分发的格式。
  • mvn install:将包安装到本地 Maven 仓库。
  • mvn deploy:将包部署到远程 Maven 仓库。

maven热部署插件各种命令作用

Maven 热部署插件(如 Tomcat Maven Plugin)提供了多种命令,用于管理和部署应用到 Tomcat 服务器。下面是一些常用命令及其作用的解释:

  1. tomcat7:deploy

    • 作用:将 WAR 文件部署到运行中的 Tomcat 服务器。
    • 使用阶段deploy 阶段
    • 示例
      mvn tomcat7:deploy
    • 说明:在执行这个命令之前,通常需要先执行 mvn package 来打包应用。
  2. tomcat7:redeploy

    • 作用:重新部署应用,先卸载旧的 WAR 文件,然后部署新的。
    • 使用阶段deploy 阶段
    • 示例
      mvn tomcat7:redeploy
    • 说明:适用于已经部署的应用需要更新的情况,不需要重启 Tomcat。
  3. tomcat7:undeploy

    • 作用:从 Tomcat 服务器卸载应用。
    • 使用阶段post-integration-test 阶段
    • 示例
      mvn tomcat7:undeploy
    • 说明:从服务器上删除应用 WAR 文件及其相关资源。
  4. tomcat7:run

    • 作用:在嵌入式 Tomcat 中运行应用,用于开发和测试。
    • 使用阶段integration-test 阶段
    • 示例
      mvn tomcat7:run
    • 说明:在没有安装独立的 Tomcat 服务器的情况下,可以在本地快速启动应用。
  5. tomcat7:start

    • 作用:启动 Tomcat 服务器,但不部署任何应用。
    • 使用阶段pre-integration-test 阶段
    • 示例
      mvn tomcat7:start
    • 说明:适用于需要手动部署或调试的情况。
  6. tomcat7:stop

    • 作用:停止 Tomcat 服务器。
    • 使用阶段post-integration-test 阶段
    • 示例
      mvn tomcat7:stop
      
    • 说明:停止运行中的 Tomcat 实例。
  7. tomcat7:exploded

    • 作用:部署解压后的 WAR 文件到 Tomcat 服务器。
    • 使用阶段deploy 阶段
    • 示例
      mvn tomcat7:exploded
    • 说明:适用于需要查看和修改部署文件的情况。
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值