天天看點

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

上文我們一起學習了怎樣搭建maven工程,這篇文章我就來教大家一起學習怎樣用tomcat插件來啟動web工程。 

我們把服務層和表現層的工程都建立好了,目前來說,其實真正能運作的就2個,一個是表現層工程——taotao-manager-web,一個服務層工程——taotao-manager。本文先來看表現層工程,它可以獨立運作,它應該怎麼運作呢?

為何要用maven tomcat插件來啟動web工程?

如果要運作表現層工程,那麼應該在其pom.xml檔案中配置一個maven的tomcat插件,而不是像我們之前那樣在外部的tomcat伺服器上運作。聰明的同學可能會思考,為什麼要使用maven tomcat插件來啟動web工程呢?這是因為在網際網路項目中,動辄十幾個甚至好幾十個web工程,如果按照傳統的添加tomcat伺服器的方式來啟動的話,那麼我們為了避免端口沖突,每增加一個web工程都要修改三個端口,非常麻煩。而使用maven tomcat插件來啟動工程,則隻需改一個端口即可,顯然簡單了很多。

使用maven tomcat插件啟動web工程

目前來說,表現層工程——taotao-manager-web中的web.xml檔案内容是空的,是以我們應該修改一下,複制以下内容到web.xml檔案中。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>taotao-manager-web</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

為了便于測試,我們在taotao-manager-web工程的webapp目錄下建立一個index.jsp頁面,其内容為:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>Hello Taotao!</h1>
</body>
</html>           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

我截圖如下: 

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

以上準備工作之後做好之後,我們直奔主題。 

首先在taotao-manager-web工程的pom.xml檔案中配置maven tomcat插件相關内容,如下所示:

<!-- 配置tomcat插件 -->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <configuration>
                <port>8080</port>
                <path>/</path>
            </configuration>
        </plugin>
    </plugins>
</build>           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

其中

<path>/<path>

的意思是輸入完

localhost:端口号

之後便可以直接訪

enter code here

問工程首頁了,

<port>8080</port>

的意思是指定該web工程的通路端口号。 

這樣,taotao-manager-web工程整個pom.xml檔案的内容如下:

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.taotao</groupId>
        <artifactId>taotao-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.taotao</groupId>
    <artifactId>taotao-manager-web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>
        <!-- JSP相關 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <!-- 配置tomcat插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <port>8080</port>
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73

下面我就來使用

clean tomcat7:run

指令啟動工程,大家要是願意的話,可以跟着我一起做喲! 

在taotao-manager-web工程上右鍵→Run As→Maven build,如下圖所示: 

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

在下圖Goals輸入框中輸入:

clean tomcat7:run

,點選【Apply】和【Run】來運作該web工程。 

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

這時Eclipse控制台列印如下: 

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

這說明我們已經使用maven tomcat插件成功啟動web工程了,并沒有報錯。這真是夠幸運的!!! 

啟動完工程了,我們在浏覽器位址欄中輸入

http://localhost:8080

來通路工程。可以看到頁面輸出”Hello Taotao! “,說明我們的web工程成功啟動了! 

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

最後一點話

我以為我第一次使用maven tomcat插件啟動web工程,肯定會報錯,沒想到這麼順利,搞得我有點受寵若驚。可能也有小夥伴第一次不會像我這樣順利,可能會遇到這樣一個問題——找不到taotao-parent這個工程,而我們要運作的web工程依賴了taotao-parent這個工程。是以我們的web工程要運作,就要找到這個依賴,這個依賴并不是在Eclipse的workspace裡面找,它要到本地倉庫中去找,由于本地倉庫中并沒有taotao-parent的包,那就自然找不到了,找不到了就會報錯了嘛!是以我們應該先把這個taotao-parent工程安裝到本地倉庫,安裝完之後,再啟動。那如何安裝呢?下面是步驟: 

在taotao-parent工程上右鍵,在右鍵菜單中選擇”Run As”,在其子菜單中點選”Maven install”,如下圖所示: 

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

打包完之後,我們在本地maven倉庫中可以看到已經有taotao相關包了,如下圖所示。 

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

輕按兩下進入taotao,可以看到taotao-parent,如下圖所示。 

商城項目實戰02:使用maven tomcat插件啟動web工程 為何要用maven tomcat插件來啟動web工程? 使用maven tomcat插件啟動web工程 最後一點話

要是大家再遇到這種問題,相信大家都能解決了。

繼續閱讀