eclipse裡面使用Maven搭建web工程

weixin_34126215發表於2015-01-27

一、建立Maven專案

使用Eclipse的maven構建一個web專案,以構建SpringMVC專案為例:

1.1 選擇建立Maven Project

選擇File -> New -> Other,在New視窗中選擇 Maven -> Maven Project。點選newxt

1.2 選擇專案路徑

Use default Workspace location預設工作空間。

1.3 選擇專案型別

在Artifact Id中選擇maven-archetype-webapp

1.4 輸入Group ID和 Artifact ID,以及Package

Group ID一般寫大專案名稱。Artifact ID是子專案名稱。

例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。

Package是預設給你建一個包,不寫也可以。

1.5 配置之後的圖

如果這裡顯示的內容多,一般是Filters設定的問題。或perspective為JavaEE模式,改成Java模式就可以了。

二、配置maven專案

2.1 新增資料夾

2.1.1 在src的main目錄下面新增java目錄

2.1.2 在src下面新增test目錄,並且在test目錄下面新增java和resources目錄

2.2 修改class路徑

右鍵專案,Java Build Path -> Source

下面應該有4個資料夾。src/main/java,src/main/resources,src/test/java ,src/test/resources。

雙擊每個資料夾的Output folder,選擇路徑。

src/main/java,src/main/resources,選擇target/classes;

src/test/java ,src/test/resources, 選擇target/test-classes;

選上Allow output folders for source folders.

在此處還要更改:

更改資料夾顯示的順序:點選Order and Export。

更改JDK版本:在Libraries雙擊JRE System Library,要1.6版本。

2.3 把專案變成Dynamic Web專案

2.3.1 右鍵專案,選擇Project Facets,點選Convert to faceted from

2.3.2 配置Project Facets

更改Dynamic Web Module的Version為2.5。(3.0為Java7的)。

如果提示錯誤,可能需要在Java Compiler設定Compiler compliance level 為1.6。或者需要在此視窗的Java的Version改成1.6。

2.3.3 配置 Modify Faceted Project
點選Further configuration available…,彈出Modify Faceted Project視窗。此處是設定web.xml檔案的路徑,我們輸入src/main/webapp。Generate web.xml deployment descriptor自動生成web.xml檔案,可選可不選。

2.4 設定部署程式集(Web Deployment Assembly)

上面步驟設定完成後,點選OK,Properties視窗會關閉,在右鍵專案開啟此視窗。在左側列表中會出現一個Deployment Assembly,點選進去後,如下圖:

此處列表是,部署專案時,檔案釋出的路徑。

我們刪除test的兩項,因為test是測試使用,並不需要部署。

三、向maven專案中新增jar包

maven可以管理專案依賴的jar包,通過groupID、artifactId以及版本號可以唯一確定一個jar包。這樣可以防止老式Web專案中WEB-INF/lib下jar包不一致的問題。並且maven還會自動下載新增進的jar包所依賴的jar包。

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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>liming.maven.example</groupId>
    <artifactId>maven-example</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>maven-example Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-asm</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>3.0.3.RELEASE</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>maven-example</finalName>
    </build>
</project>

四、構建SpringMVC框架

4.1 編輯web.xml檔案

需要新增log4j,字元過濾,Spring 的dispatcher等。webx.xml程式碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
         version="2.5" >
    
    <!-- 區分專案名稱,防止預設重名 -->
    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>maven.example.root</param-value>
    </context-param>

    <!-- Spring的log4j監聽器 -->
    <listener>
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    </listener>

    <!-- 字符集 過濾器  -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- Spring view分發器 -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

</web-app>

4.2 編寫Spring配置檔案dispatcher-servlet.xml

如要新增MVC驅動、註解檢測、檢視解析等。dispatcher-servlet.xml程式碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
       xmlns:aop="http://www.springframework.org/schema/aop" 
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc" 
       xmlns:tx="http://www.springframework.org/schema/tx" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

    <mvc:annotation-driven />
    <context:component-scan base-package="com.qunar.check" />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

4.3 編寫一個Controller層測試類

編寫一個SpringMVC的Controller層測試類。此類只有一個方法做地址對映,並向頁面傳遞一個資料。程式碼如下:

package Controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {

    @RequestMapping(value = "index.do")
    public void index_jsp(Model model) {
        model.addAttribute("name", "李秋你好");
        System.out.println("index.jsp");
    }
}

4.4 編寫index.jsp頁面

首先在src/main/webapp/WEB-INF下建資料夾views。此處和dispatcher-servlet.xml配置檔案中的prefix屬性路徑要一樣。

在views下建index.jsp檔案

我們使用jstl獲取Controlleradd的資料。

Jsp頁面程式碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!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>
        <c:out value="${name}"></c:out>
    </body>
</html>

五、測試

執行程式碼

 

下載地址:http://files.cnblogs.com/files/liqiu/check_result.tar.gz

相關文章