Maven自动部署至远程tomcat

配置tomcat的manager

编辑远程tomcat服务器下的conf/tomcat-users.xml

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

password为自己的密码

manager-gui
允许访问html接口(即URL路径为/manager/html/*)
manager-script
允许访问纯文本接口(即URL路径为/manager/text/*)
manager-jmx
允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
manager-status
允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)

注意对于tomcat9来说,不能同时赋予用户manager-script和manager-gui角色

新建manager.xml

在tomcat服务器的conf/Catalina/localhost/目录下创建一个manager.xml文件,写入如下值:

<Context privileged="true" antiResourceLocking="false"
    docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

然后在浏览器中输入http://serverip:port/manager/html,此时会弹出要求输入用户名和密码对话框,输入manager-gui对应的用户和密码登录管理控制台(其中serverip为服务器ip,如果服务器在本地就是localhost或者127.0.0.1,端口为tomcat端口,默认8080)。以此确认manager是否配置正确。正确结果示例如下:

在maven项目中添加配置

在pom.xml文件中,在plugins节点下添加如下plugin节点

</plugin>
	<!-- 配置Tomcat插件 -->
	<plugin>
	    <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
	</plugin>
				
	<plugin>
	    <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <port>8080</port>
                <path>/</path><!-- 访问路径-->
                <uriEncoding>UTF-8</uriEncoding>
                <!--http://localhost:8080/manager/stop?path=/ //停止 -->                                                                                                                                
                <!--http://localhost:8080/manager/start?path=/ //启动 -->
                <!--http://localhost:8080/manager/text/deploy?path=/ //部署 -->
                <!--http://localhost:8080/manager/text/undeploy?path=/ //卸载 -->
                <url>http://serverip:port/manager/text</url><!-- 远程服务器url地址 -->
                <username>tomcat</username>
                <password>tomcat</password>
                <update>true</update>
            </configuration>
        </plugin>
</plugin>

将上面的serverip和port换成自己tomcat服务器的ip和端口。密码换成上面配置的manager-script角色的密码。path改为项目在tomcat服务器中的部署路径。

然后进行部署,如果是第一次部署,运行mvn tomcat7:deploy进行自动部署(对于tomcat8,9,也是使用tomcat7命令),如果是更新了代码后重新部署更新,运行mvn tomcat7:redeploy,如果第一次部署使用mvn tomcat7:redeploy,则只会执行上传war文件,服务器不会自动解压部署。如果路径在tomcat服务器中已存在并且使用mvn tomcat7:deploy命令的话,上面的配置中一定要配置<update>true</update>,不然会报错。

自选配置

扫描二维码关注公众号,回复: 3350093 查看本文章
<!-- 忽略项目中测试错误,在发布过程中会运行项目中的测试代码-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <testFailureIgnore>true</testFailureIgnore>
    </configuration>
</plugin>

运行Maven

mvn tomcat7:deploy

mvn clean install    ----->mvn tomcat7:redeploy 

保证服务器在启动状态

否则报错

Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:deploy (default-cli) on project rspsm-dp-plus-console: Cannot invoke Tomcat manager: Connection to http://172.23.26.61:8080 refused: Connec
tion refused: connect

正常状态

Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:deploy (default-cli) on project rspsm-dp-plus-console: Cannot invoke Tomcat manager: Connection reset by peer: socket write error

猜你喜欢

转载自blog.csdn.net/weixin_37645838/article/details/82726238