1. pom.xml 添加 tomcat插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<url>http://127.0.0.1:8080/manager/text</url>
<update>true</update>
<server>tomcat</server>
<username>tomcat</username>
<password>tomcat</password>
</configuration>
</plugin>
</plugins>
</build>
- 这里的url为tomcat manager的url,后面一定是/manager/text,这个是manager上传war包的路径;
- 这里的path为“/”,指tomcat根目录,即,访问链接为:127.0.0.1:8080;
- update节点为true,这样每次deploy的时候,就会更新之前的war包,不然会报错;
2. server节点在maven conf/setting.xml里设置,这是maven的配置:
<servers>
<server>
<id>other</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>tomcat</id>
<username>tomcat</username>
<password>tomcat</password>
</server>
<servers>
- 这里的server可以配置多个,只要ID不一样就可以;
3. tomcat配置里,添加tomcat user:
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="admin-script"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>
<user username="tomcat" password="tomcat" roles="manager-script" />
</tomcat-users>
- 这里是比较坑的地方,tomcat的manager-admin角色和manager-gui角色不能同时给一个账号使用;需要分开;
- 所以上面pom.xml和maven的server里面使用的都是tomcat这个账号,这个是专门用manager-script这个角色的;
4. tomcat的server.xml不需要做任何处理,不需要加context path="/"节点,加了就不对了:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
- 这里不需要添加context节点;
- autoDeploy要设置为true,unpackWARs也为true;
5. 启动8080端口的tomcat,然后IDE里,点击“tomcat7”》“tomcat7:deploy”,会将war包上传到tomcat的webapps根目录:
部署之前:
这里保留tomcat的manager项目
点击“deploy”:
部署日志:
[INFO] <<< tomcat7-maven-plugin:2.2:deploy (default-cli) < package @ project <<<
[INFO]
[INFO] --- tomcat7-maven-plugin:2.2:deploy (default-cli) @ project ---
[INFO] Deploying war to http://127.0.0.1:8080/
Uploading: http://127.0.0.1:8080/manager/text/deploy?path=%2F&update=true
Uploaded: http://127.0.0.1:8080/manager/text/deploy?path=%2F&update=true (21698 KB at 61291.7 KB/sec)
[INFO] tomcatManager status code:200, ReasonPhrase:OK
[INFO] OK - Deployed application at context path /
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.025 s
[INFO] Finished at: 2017-03-24T15:30:10+08:00
[INFO] Final Memory: 29M/448M
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0
部署之后:
maven tomcat插件会将war自动重命名为ROOT.war,之后上传到webapps的目录,然后tomcat会自动将war包解压,实现自动部署。
6. 访问:http://127.0.0.1:8080/