Eclipse下maven部署web項目到tomcat7(兼容tomcat8)


1.下載tomcat7並配置好JAVA_HOME,tomcat7\webapps目錄除了manager之外,其它都可以刪除(刪除沒用的,可加速tomcat的啟動).

2.新建系統變量CATALINA_HOME,值為:C:\opensource\tomcat-7.0.34,在系統變量  Path的最后面添加%CATALINA_HOME%\lib; %CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar   注意它們之間的分號,一定是英文的分號。

3.tomcat7\conf\tomcat-users.xml加入

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

當然用戶名和密碼可以不一樣,但沒有manager-gui就不能通過瀏覽器去訪問manage應用,沒有manager-script就不能通過manage去上傳war包達到部署的目的.

3.配置maven的setting.xml

修改%MAVEN_HOME%\conf\setting.xml(前提是在myeclipse preferences中maven啟用本地安裝版本並設置用戶setting.xml為本地conf下的setting.xml)。

在<servers>標簽中加入

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

注意這里用戶名、密碼必須為manager-gui角色的用戶,這里設置需要與之前tomcat配置時的角色分配對應起來。

4.在web項目的pom.xml的一個應用例子(注:url也必須有/text,否則也上傳不了war包)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.test</groupId>
    <artifactId>testweb</artifactId>
    <packaging>war</packaging>
    <version>1.0</version>
    <name>testweb Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.deploy>deploy</project.deploy>
        <project.tomcat.version>8.0.0-RC5</project.tomcat.version>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>

<!-- 
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>resources</goal>
                        </goals>
                        <configuration>
                            <encoding>UTF-8</encoding>
                            <outputDirectory>${project.build.directory}/${project.deploy}</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/resources/</directory>
                                    <includes>
                                        <include>*.xml</include>
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>
                    <outputDirectory>${project.build.directory}/${project.deploy}</outputDirectory>
                </configuration>
                <executions>
                    <execution>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <excludes>
                                <exclude>*.properties</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
 -->

            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <username>username</username>
                    <password>password</password>
                    <path>/${project.artifactId}</path>
                </configuration>
            </plugin>

        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>${project.tomcat.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>

5.tomcat7要先啟動,在命令行轉到項目目錄下輸入d:\maven3\bin\mvn tomcat7:deploy看結果.(注:不是tomcat:deploy)

在eclipse配置好外部的maven,在eclipse的run configurations建一個Maven Build:Name隨便起一個名字(如tomcat7_redeploy),Base directory選項目目錄${workspace_loc:/testweb},goals填tomcat7:deploy.或tomcat7:redeploy

deploy:如果已經部署過,再deploy就會失敗.去tomcat7的webapps刪除已經部署過的就行了.

6.五個必須掌握的maven命令

1). mvn help:describe 你是否因為記不清某個插件有哪些goal而痛苦過,你是否因為想不起某個goal有哪些參數而苦惱,那就試試這個命令吧,它會告訴你一切的. 參數: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:與-Dplugin一起使用,它會列出某個插件的goal信息,如果嫌不夠詳細,同樣可以加-Ddetail.(注:一個插件goal也被認為是一個 “Mojo”) 下面大家就運行mvn help:describe -Dplugin=help -Dmojo=describe感受一下吧!

2). mvn archetype:generate 你是怎么創建你的maven項目的?是不是像這樣:mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common,如果你還再用的話,那你就out了,現代人都用mvn archetype:generate了,它將創建項目這件枯燥的事更加人性化,你再也不需要記那么多的archetypeArtifactId,你只需輸入archetype:generate,剩下的就是做”選擇題”了.

3). mvn tomcat:run 用了maven后,你再也不需要用eclipse里的tomcat來運行web項目(實際工作中經常會發現用它會出現不同步更新的情況),只需在對應目錄(如/ryanote)里運行 mvn tomat:run命令,然后就可在瀏覽器里運行http://localhost:8080/ryanote查看了.如果你想要更多的定制,可以在pom.xml文件里加下面配置: 01 02 03 04 org.codehaus.mojo 05 tomcat-maven-plugin 06 07 /web 08 9090 09 10 11 12 當然你也可以在命令里加參數來實現特定的功能,下面幾個比較常用: 1. 跳過測試:-Dmaven.test.skip(=true) 2. 指定端口:-Dmaven.tomcat.port=9090 3. 忽略測試失敗:-Dmaven.test.failure.ignore=true 當然,如果你的其它關聯項目有過更新的話,一定要在項目根目錄下運行mvn clean install來執行更新,再運行mvn tomcat:run使改動生效.

4). mvnDebug tomcat:run 這條命令主要用來遠程測試,它會監聽遠程測試用的8000端口,在eclipse里打開遠程測試后,它就會跑起來了,設斷點,調試,一切都是這么簡單.上面提到的那幾個參數在這里同樣適用.

5). mvn dependency:sources 故名思義,有了它,你就不用到處找源碼了,運行一下,你項目里所依賴的jar包的源碼就都有了

下面介紹幾個常用的Goal

命令 描述
tomcat:deploy 部署一個web war包
tomcat:reload 重新加載web war包

tomcat:start

啟動tomcat

tomcat:stop

停止tomcat

tomcat:undeploy

停止一個war包
tomcat:run 啟動嵌入式tomcat ,並運行當前項目


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM