zoukankan      html  css  js  c++  java
  • Maven 集成Tomcat7插件自动部署

    1、配置tomcat-users.xml文件

    在tomcat安装目录下找到tomcat-users.xml文件。该文件路径为【tomcat安装根目录】/conf/

    修改文件内容,增加下列内容:(一般配置后两个角色就行了

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

      

    启动tomcat7,然后访问http://localhost/manager/html,输入tomcat/tomcat,如果出现以下界面,表示tomcat一切OK

    如果是Tomcat6 http://localhost/manager

    2、配置maven 的setting.xml 文件

    在Maven的conf目录中的setting.xml servers节点增加

    <server>  
     <id>tomcat7</id>  
     <username>tomcat</username>  
     <password>tomcat</password>
    </server>

    3、配置项目pom.xml文件(下面将端口改为80的配置)

                <!-- tomcat插件 -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <url>http://localhost/manager/text</url> 
                        <server>tomcat7</server>  
                        <username>tomcat</username>
                        <password>tomcat</password>
                        <port>80</port>
                        <path>/blog</path>
                    </configuration>
                </plugin>

    注:此处的url 注意是xxx/manager/text 并非是 xxx/manager/html 原因是我用的tomcat 是tomcat7 的版本

    4、cmd运行

    先进入到项目所在的目录,然后运行

    mvn tomcat:redeploy  
    

     

     

    最终结果:

    其中只有system-web是web项目,其它都不是,只是一些依赖项目

     

    在目录D:JavaToolapache-tomcat-7.0.62webapps可以找到发布好的文件

    第二种:

    Eclipse中发布项目:

    刚才那个界面会部署上blog

     浏览器输入:http://localhost/blog

     

    常见错误排除:

    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]  

    原因:未启动Tomcat服务器

    解决办法:先启动Tomcat服务器再选择Run

    2. 401错误

    报错信息如下:

    [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: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/text/deploy?path=%2Fhelloworld -> [Help 1]  

    原因:权限问题

    解决办法在$CATALINA_BASE/conf/tomcat-users.xml,

    如D:apache-tomcat-7.0.34conf omcat-users.xml文件中添加权限

    <role rolename=”manager”/>  
    <user username=”admin” password=”admin” roles=”manager”/> 

    修改pom.xml文件,在<configuration>  </configuration>中添加

                <!-- tomcat插件 -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <url>http://localhost/manager/text</url> 
                        <server>tomcat7</server>  
                        <username>tomcat</username>
                        <password>tomcat</password>
                        <port>80</port>
                        <path>/blog</path>
                    </configuration>
                </plugin>

    3.403错误

    报错信息如下:

    [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: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Fhelloworld -> [Help 1]  

    原因:产生该问题有可能因为两个原因,具体参见解决办法

    解决办法:

    1)如果使用的是Tomcat 7,需要修改pom.xml中部署的url地址,将

    <url>http://localhost/manager</url>

    <url>http://localhost/manager/text</url>

    在这次部署的问题上,我就是遇到了url 的问题,我用的是tomcat7

    2)给tomcat用户权限分配上,需要同时具备manager-gui和manager-script权限

    正确的conf/tomcat-users.xml配置应为:

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

    最后我的项目部署成功可是没启动,是因为项目本身有错误,我再项目中加了一个log4j日志记录文件就查出错误,解决掉之后就发布成功并启动了。

    总结:

      在命令行输入E:MavenEclipseWorkspacelog>mvn clean tomcat7:redeploy   确实可以热部署,(eclipse中多次部署报错),所以建议使用命令行的maven命令。可不知道为什么部署完之后项目文件夹被删除了东西,也就是热部署之后没有重新扫描war包,这仍然是一个待解决的问题。每次更新完代码只需要重新部署一下即可,不需要重启tomcat服务,对开发速度有了很大的提高。遗留的一个问题就是war包更换之后如何自动扫描war包?

  • 相关阅读:
    链接脚本之LMA VMA解释
    centos6.2+nginx-1.2.3+php-5.3.17安装脚本
    _itemFailedToPlayToEnd: { kind = 1; new = 2; old = 0; }
    mongodb 学习笔记 04 -- 游标、索引
    WordPress中文汉字username不能注冊怎么办?
    UVALive 6665 Dragonas Cruller
    eclipse开发c++时cout和endl报错
    iOS 四种延时的方法
    有一种设计风格叫RESTful
    MySQL分区表
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/8232429.html
Copyright © 2011-2022 走看看