最近做项目用的是Maven管理的jar包,开发环境用的是elicpse,所以在此分享一下如何让Maven与Tomact自动集成,来把我们的项目打成war包,自动部署到Tomact中。
1.配置Tomact中Manager访问权限
由于Tomact中没有配置manager访问权限,所以这里需要在tomcat-users.xml加入用户以及权限。修改Tomact中的apache-tomcat-7.0.39\conf\tomcat-users.xml文件,添加如下信息。
<tomcat-users> <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="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/> </tomcat-users>
在这里小编让admin用户拥有了所有的权限,其实只需要manager-gui和manager-script权限即可
2.修改Maven中的Settings.xml文件
需要修改Maven的Settings.xml文件,让Maven也可以自动的访问到Tomact中,在Settings.xml中添加如下信息
<server> <id>tomcat7</id> <username>admin</username> <password>admin</password> </server>
上述中的username和password要和context.xml中配置的信息一致
3.添加plugin部署插件
修改项目中的pom文件,添加插件信息
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <!-- 此处不可修改 --> <url>http://localhost:8080/manager/text</url> <!-- 此处要和settings.xml中配置的信息一致--> <server>tomcat7</server> <username>admin</username> <password>admin</password> </configuration> </plugin>
上述的username和password所描述的信息一定要和settings.xml中的配置信息一致,否则会报错
4.部署命令
在部署之前,一定要启动Tomact,否则会报错
找到要部署的工程文件根目录下,执行如下maven命令
> mvn clean:install //clean是清理输出文件,install编译打包,在每次打包之前必须执行clean,才能保证发布为最新文件
> mvn tomcat7:redeploy //第一次发布 tomcat7:deploy,再次发布 tomcat7:redeploy
5.错误汇总
当然了,任何时候都不是一帆风顺的,小编把自己的错误信息给大家分享一下
5.1 Connection refused错误
[ERROR]Failed to execute goal org.apache.tomcat.maven: tomcat7-maven-plugin: 2.0- SNAPSHOT: deploy (default-cli) on project helloworld: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1]
原因是没有启动Toamct,启动后再执行maven命令
5.2. 401错误
Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on project SpringTest: Cannot invoke Tomcat manager: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/text/deploy?path=%2FSpringTest&war=&update=true -> [Help 1]
原因是tomcat-users.xml、Settings.xml以及pom文件中的信息是否一致,不一致的话,会报此错误