1. 程式人生 > >maven一鍵部署tomcat war包(轉載)

maven一鍵部署tomcat war包(轉載)

install pom.xml password 一次 輸出 group 通過 cli con

1、環境如下

  eclipse、apache-maven-3.0.5、apache-tomcat-7.0.39

2、配置如下

  apache-tomcat-7.0.39配置C:\Program Files\apache-tomcat-7.0.39\conf\tomcat-users.xml,因為tomcat7默認情況下沒有配置manager訪問權限,所以這裏需要在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>
技術分享圖片

  apache-maven-3.0.5配置C:\Program Files\apache-maven-3.0.5\conf\settings.xml,為了讓maven可以訪問tomcat的權限,所以需要把如上創建的用戶添加到settings.xml中,如下

技術分享圖片
<servers>

    <!-- 配置tomcat-/manager/text 訪問權限 -->
    <server>
      <id>tomcat</id>
      <username>admin</username>
      <password>admin</password>
    </server>

  </servers>
技術分享圖片

  工程目錄下的pom.xml文件,加入build,並配置tomcat7的maven插件,如下配置

技術分享圖片
<build>
        <finalName>myApp</finalName>
        <!-- directory缺省情況下指向target --> 
        <!--<directory>${basedir}/target</directory>-->
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <!-- server、username、password對應maven的setting下的配置 -->
                    <server>tomcat</server>
                    <username>admin</username>
                    <password>admin</password>
                    <path>/${project.build.finalName}</path>
                    <!-- war文件路徑缺省情況下指向target -->
                    <!--<warFile>${basedir}/target/${project.build.finalName}.war</warFile>-->
                </configuration>
            </plugin>
        </plugins>
    </build>
技術分享圖片

  ${project.build.finalName}這個是根據xml的路徑來標記的

3、命令部署

  在部署之前,必須先啟動tomcat7服務,C:\Program Files\apache-tomcat-7.0.39\bin\startup.bat

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

  > mvn clean:install   //clean是清理輸出文件,install編譯打包,在每次打包之前必須執行clean,才能保證發布為最新文件

  > mvn tomcat7:redeploy   //第一次發布 tomcat7:deploy,再次發布 tomcat7:redeploy

4、問題

  Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/deploy?path=%2FmyApp&war=

  技術分享圖片

  如上問題,有如下兩個原因:

  A、由於maven沒有權限訪問http://localhost:8080/manager/text,所以需要在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

  所以這裏需要註意tomcat7-maven-plugin插件的引入,正確引入將解決以上問題

  

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

  > mvn tomcat7:redeploy
  即可完成部署

maven一鍵部署tomcat war包(轉載)