maven自动部署到tomcat

maven一键部署tomcat war包

 

 

1、环境如下

  eclipse、apache-maven-3.0.5、apache-tomcat-6.0.32

 

2、配置如下

  apache-tomcat-6.0.32配置C:\Program Files\apache-tomcat-6.0.32\conf\tomcat-users.xml,因为tomcat6默认情况下没有配置manager访问权限,所以这里需要在tomcat-users.xml加入用户以及权限

  <tomcat-users>
                <role rolename="manager"/>
                <role rolename="admin"/>
                <user username="admin" password="password" roles="admin,manager"/>
        <tomcat-users>

 

  apache-maven-3.0.5配置C:\Program Files\apache-maven-3.0.5\conf\settings.xml,为了让maven可以访问tomcat的权限,所以需要把如上创建的用户添加到settings.xml中,如下

<server>
      <id>tomcat6</id>
      <username>admin</username>
      <password>admin</password>
    </server>

 

  工程目录下的pom.xml文件,加入build,并配置tomcat6的maven插件,如下配置

<plugin>
					<groupId>org.apache.tomcat.maven</groupId>
					<artifactId>tomcat6-maven-plugin</artifactId>
					<version>2.2</version>
					<configuration>
						<url>http://localhost:8080/manager/html</url>
						<!-- server、username、password对应maven的setting下的配置 -->
						<server>tomcat6</server>
						<username>admin</username>
						<password>admin</password>
						<path>/${project.build.finalName}</path>
						<!-- war文件路径缺省情况下指向target -->
						<!--<warFile>${basedir}/target/${project.build.finalName}.war</warFile> -->
					</configuration>
				</plugin>

 

  ${project.build.finalName}这个是根据xml的路径来标记的

 

3、命令部署

  在部署之前,必须先启动tomcat7服务,C:\Program Files\apache-tomcat-6.0.32\bin\startup.bat

  找到要部署的工程文件根目录下,执行如下maven命令

  > mvn clean:install             //clean是清理输出文件,install编译打包,在每次打包之前必须执行clean,才能保证发布为最新文件

  > mvn tomcat6:redeploy    //第一次发布 tomcat6:deploy,再次发布 tomcat6:redeploy

 

4、问题

  Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2FspringLearning-webDemo&update=true

  

  如上问题,有如下两个原因:

  A、由于maven没有权限访问http://localhost:8080/manager/html,所以需要在apache-tomcat下的tomcat-users.xml增加用户权限,并配置于maven的setting文件中

  B、由于maven-tomcat插件问题,通过http://search.maven.org/搜索tomcat-maven-plugin,发现最新版本之后,最后执行> mvn tomcat:redeploy,一直都会显示上面这个报错,这里如果是tomcat7,建议直接通过http://search.maven.org/搜索tomcat7-maven-plugin插件,执行> mvn tomcat7:redeploy,这样就部署成功了;如果tomcat6就直接通过http://search.maven.org/搜索tomcat6-maven-plugin

  所以这里需要注意tomcat6-maven-plugin插件的引入,正确引入将解决以上问题

  

  <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat6-maven-plugin</artifactId>
    <version>2.2</version>

  >  mvn tomcat7:redeploy
  即可完成部署

 

 

猜你喜欢

转载自tommy-lu.iteye.com/blog/2223078