第一次写博客,心情激动,在公司加班时心血来潮,学习喜爱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