1. 程式人生 > >eclipse maven項目中使用tomcat插件部署項目

eclipse maven項目中使用tomcat插件部署項目

.net eclips blog lean 插件 聽說 min apache 參考

maven的tomcat插件部署web項目,我簡單認為分兩種,一種是部署到內置tomcat,另一種是部署到安裝的tomcat。

第一種部署,默認是部署在內置tomcat的8080端口,如果不需要改端口及其他設置,完全可以不用在pom中配置tomcat插件

如果需要改端口,可參考如下配置:

技術分享
 <build>
 <plugins>
  <plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>tomcat-maven-plugin</artifactId>
   <version>1.1</version>
   <configuration>
    <path>/Demo1</path>
    <port>8088</port>
    <uriEncoding>UTF-8</uriEncoding>
    </configuration>
  </plugin>
 </plugins>
</build>
技術分享

然後執行mvn clean tomcat:deploy, 最後mvn tomcat:run可以啟動內置tomcat。

內置tomcat部署比較簡單,下面主要講本地安裝的tomcat部署

1、準備工作

下載安裝並配置好Tomcat和Maven。

準備好一個Maven Web項目。

2、Maven部署Web項目到Tomcat的配置

2.1 Maven自動部署實際上調的是Tomcat安裝目錄下的manager功能。而為了能正常訪問http://localhost:8080/manager頁面,我們需要修改$TOMCAT_HOME/conf目錄下的tomcat-users.xml:

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

ps:用maven的tomcat插件部署項目,我的理解是調用manager-script的權限,用腳本的方式執行命令,manager-gui應該是界面方式部署,也就是類似webLogic那樣打開管理頁面,完後自己選擇項目部署。個人覺得有manager-script的權限就可以了。

2.2、修改Maven的settings.xml

在$USER_HOME/.m2目錄下找到settings.xml,添加server節點:

技術分享
<servers>
    <server>
       <id>tomcat</id>
       <username>tomcat</username>
       <password>tomcat</password>
    </server>
</servers>
技術分享

2.3、修改pom.xml增加Tomcat Maven插件

我使用的Tomcat6,pom.xml中增加如下配置:

技術分享
...
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> <configuration> <path>/Demo1</path> <port>8080</port> <uriEncoding>UTF-8</uriEncoding> <url>http://localhost:8080/manager/html</url> <server>tomcatServer</server> <username>tomcat</username> <password>tomcat</password> </configuration> </plugin> </plugins> </build>
技術分享

如果是tomcat7插件:

技術分享
<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>3.2.2.RELEASE</spring.version>
        <finalName>web-loab</finalName>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <server>tomcat</server>
                    <username>tomcat</username>
                    <password>tomcat</password>
                    <path>/Demo1</path>
                </configuration>
            </plugin>
        </plugins>
    </build>
技術分享

上面username、password來自tomcat-users.xml。server來自settings.xml指定的server的id。path是訪問應用的路徑。url指定Tomcat管理頁路徑。

2.4、部署項目到Tomcat

mvn clean tomcat:redeploy

然後 mvn tomcat:run就可以用插件啟動本地安裝的tomcat。

PS:另外我聽說mvn的tomcat插件只能啟動一個項目,實踐中發現是這麽回事,但是沒找到資料證實,大家有意見和建議請賜教。

參考文檔:http://my.oschina.net/feichexia/blog/326893

eclipse maven項目中使用tomcat插件部署項目