zoukankan      html  css  js  c++  java
  • Maven自动部署war到Tomcat8

    原文:http://www.cnblogs.com/yucongblog/p/5392932.html

    我使用的环境是:Eclipse Java EE IDE for Web Developers(Version: Luna Service Release 2 (4.4.2))

                          apache-tomcat-8.0.32

                          apache-maven-3.3.9

    实战过程如下:

    第一步:配置Tomcat访问权限

    要打开tomcat的manager功能;

    在conf文件夹下的tomcat-users.xml的<tomcat-users>标签内添加如下内容

    <role rolename="manager-gui"/>  
      <role rolename="manager-script"/>  
      <role rolename="manager-jmx"/>  
      <role rolename="manager-status"/>  
      <user password="123456" username="admin"
     roles="manager-gui,manager-script,manager-jmx,manager-status" />
    <role rolename="manager-gui"/>  
      <role rolename="manager-script"/>  
      <role rolename="manager-jmx"/>  
      <role rolename="manager-status"/>  
      <user password="123456" username="admin"
     roles="manager-gui,manager-script,manager-jmx,manager-status" />

    启动tomcat并访问http://localhost:8080/manager

    输入配置的用户名(admin)和密码(123456)看是否可以登录,如果可以进下一步

    第二步:配置maven的setting.xml

    在conf/setting.xml文件中的标签<servers>添加子标签

     <server>  
         <id>tomcat8</id>  
         <username>admin</username>  
         <password>123456</password>  
     </server>

    注意,这里配置的username和password一定要和tomcat中的tomcat_user.xml中一致。

    第三步:配置pom.xml

    在pom.xml中添加如下代码,在标签<project>下添加子标签

    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>
    
        <plugin>  
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <configuration>  
               <!-- 远程tomcat下manager路径 -->
            <url>http://localhost:8080/manager/text</url>      
            <server>tomcat8</server>    
          </configuration>                  
        </plugin>
    
      </plugins>
    </build>

    以上几步完成以后就可以执行mvn命令了,如下操作:

    (1) mvn clean install

    (2) mvn tomcat7:deploy (第一次部署执行)

    (3) mvn tomcat7:redeploy(第二次部署是执行)

     注意:第一次发布是执行(2),已经发布了,需要重新发布执行(3)。

    通过以上操作就可以通过maven把项目自动部署到tomcat了。

    在Maven与Tomcat配合部署过程中,最常见的错误有三种,以及相应的完美解决办法

    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.2: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-8.0.20conf omcat-users.xml文件中添加权限

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

     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:8080/manager</url>改<url>http://localhost:8080/manager/text</url>

    2)给tomcat用户权限分配上,需要同时具备manager-gui和manager-script权限,我在遇到该问题时,就是忘了分配manager-script权限。

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

    <tomcat-users>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="admin” password="123456" roles="manager-gui, manager-script"/>
    </tomcat-users>
  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/shihaiming/p/6283698.html
Copyright © 2011-2022 走看看