####由于有朋友不会这个远程部署又懒的百度、google 于是我写这个maven+tomcat远程部署javaweb项目的教程。以后心情好说不定会继续更新项目管理的一些环境搭建:如jenkins+gitlab+项目管理工具(如禅道)这样自动化部署测试环境
##工具和环境准备
1:工具 maven tomcat
2:环境maven能下jar即可、tomcat管理员账户和一些安全设置设定(8.5以上需要设定远程管理员访问的配置)
3:能访问远程tomcat管理页面
##maven远程部署配置
####1: maven工具配置
需要在maven的setting.xml中添加如下配置
settins.xml 一般在maven安装目录的conf文件夹下 不排除有人更改默认地址了
1 2 3 4 5 6 7 8
| <servers> <!--maven tomcat远程部署密码帐号密码设置--> <server> <id>名称 例如“laji” (任意取 pom.xml中需要使用)</id> <username>tomcat管理员用户名</username> <password>tomcat管理员密码</password> </server> </servers>
|
####2:maven项目中的pom设置 在build的插件中添加下面这个插件并且配置
亲测可以支持8.5tomcat 和7.x的 , tomcat 9.x的没测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <!--tomcat远程部署插件--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <!-- 此处的名字必须和setting.xml中配置的ID一致--> <server>laji</server> <!-- tomcat远程部署访问页面--> <url>http://服务器ip:8080/manager/text</url> <!-- 此处的名字是项目发布的工程名 可以任意取 访问部署好的项目旧是这个名称--> <path>/lajiproject</path> </configuration> </plugin>
|
##tomcat远程部署配置
####1:需要配置tomcat管理员账户 并且能访问远程tomcat管理员地址例如:localhost:8080/manager/text
在tomcat安装目录的conf下面的tomcat-users.xml中修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="ideal123" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
</tomcat-users>
|
####2:tomcat8.5远程需要添加远程管理员用户访问配置步骤
####tomcat 8.5之后呢对安全访问增强了 不仅仅需要配置管理帐号还需要配置允许远程访问管理员账户
1 2 3 4 5 6 7 8 9 10 11
| 在conf/Catalina/localhost/manager.xml 没有就创建这个xml ,然后在manager.xml中添加
<Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>
直接生效无须重启 在官方文档中提到:每个web应用应该有自己的安全管理文件(manager.xml)如果没有使用默认值 也就是不能远程访问 所以如果需要远程访问就需要创建manager.xml来指定允许远程访问规则
|
##执行远程部署
####例如idea 在你项目的maven配置的地方找到Plugins>tomcat7>tomcat7:redeploy
####尽量使用redeploy 因为你不从新部署有时候会产生乱七八糟的错误
####这个插件具体玩法 向具体了解就需要自行找官方文档 我也没看官方文档
###总结:部署过程: maven编译jar或者war》maven通过远程服务器的支持上传jar或者war
###这个时候需要保证本地编译的jar和war能符合服务器上的tomcat的jre版本