第一次写博客,心情激动,在公司加班时心血来潮,学习喜爱maven自动化部署.
一.首先应该明确tomcat 权限分配是否完成.
<tomcat-users version="1.0" 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"> <role rolename="tomcat"/> <role rolename="manager"/> <role rolename="manager-gui"/> <role rolename="manager-script" /> <role rolename="admin-gui"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin" roles="tomcat,manager,manager-script,admin-gui,manager-gui,manager-status,manager-jmx" /> <user username="tomcat" password="tomcat" roles="manager-gui" /> </tomcat-users>
二.检查并修改tomcat/webapps/manager 和 host-manager 目录的 META-INF 目录下 的 context.xml :
<Context antiResourceLocking="false" privileged="true" > <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> </Context>
要么将value节点注释掉,要么自定义可访问ip , 具体 匹配正则可以百度.
三.找到安装好的maven路径下的conf/settings.xml中添加:
<server> <id>tomcat7</id> <username>admin</username> <password>admin</password> </server>
用户名密码是你自己在第一步中权限分配时设置的..
四.既然是maven自动化部署,,当然少不了maven项目啦. 新建一个maven项目(怎么见maven项目自行百度) .在pom.xml中添加
<build> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://127.0.0.1:8080/manager/text</url> <server>tomcat7</server> <username>admin</username> <password>admin</password> <path>/ROOT</path> <charset>utf8</charset> <update>true</update> </configuration> </plugin> </plugins> </build>
注意 server 要与 settings.xml中server一致.
在添加相关依赖:
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.5.4</version> </dependency>我用的是8.5版本的tomcat ;
五.执行
在项目根目录下执行
//第一次 mvn tomcat7:deploy //之后 mvn tomcat7:redeploy//这里我要求先重新打包,并跳过测试,再部署 //第一次 mvn package -Pdevelop -Dmaven.skip.test=true tomcat7:deploy //之后 mvn package -Pdevelop -Dmaven.skip.test=true tomcat7:redeploy
我用的是eclipse,或者右键项目,选择run ->maven bulid... ,Goals里执行,不要带mvn
注意事项:
1.需要将远程机器的tomcat先开启,这里是热部署
2.可以在本地先调试好,再到远程去执行
3.在本地测试时,用eclipse做测试修改tomcat-user.xml在eclipse上的server里修改,不然会覆盖掉tomcat目录下的tomcat-user.xml配置
参考链接:
1.http://www.cnblogs.com/amosli/p/6086515.html
