MyEclipse系列之maven

 現在大部分人都使用IDEA開發,這裏我將一下MyEclipse搭建maven,不管是哪個開發工具,搭建方法都是一樣的。

1. maven介紹

1.1 什麼是maven

 maven是Apache下一個純java開發的開源項目,它是一個項目管理工具,使用maven對Java項目進行構建、依賴管理。

2. 什麼是項目構建

 項目構建是一個項目從編寫源代碼、測試、運行、打包、部署、運行的過程。
 maven將項目構建的過程進行標準化,每個階段使用一個命令完成,下圖展示了構建過程的一些階段。
這裏寫圖片描述
 上圖中部分階段對應命令如下:

清理階段對應maven的命令式clean,清理輸出的class文件。
編譯階段對應maven的命令是compile,將java代碼編譯成.class文件。
打包階段對應的maven命令是package,Java工程可以打包成jar包,web工程可以打包成war包。

 maven工程構建的優點:

  • 一個命令完成構建、運行,方便快捷。
  • maven對每個構建階段進行規範,非常有利於大型團隊協作開發。

3.什麼是依賴管理

 什麼是依賴?一個Java項目可能要使用一些第三方的jar包纔可以運行,那麼我們說這個Java項目依賴了這些第三方的jar包。

 舉個例子:一個web project使用ssh框架,該web project依賴ssh框架,具體它依賴的是hibernate,spring,struts2.

 什麼是依賴管理?就是對項目所依賴的jar包進行規範化管理。

 使用maven依賴管理添加jar的好處:

  • 通過pom.xml文件對jar包的版本進行統一管理,可避免版本衝突。
  • maven團隊維護了一個非常全的maven倉庫,裏面包括了當前使用的jar包,maven工程可以自動從maven倉庫下載jar包,非常方便。

4. maven倉庫

4.1 maven倉庫的作用

 maven的工作需要從遠程倉庫(可以理解爲互聯網上的倉庫)下載一些jar包並保存在本地倉庫,本地倉庫就是本地文件夾,當第二次需要此jar包時則不再從遠程倉庫下載,因爲本地倉庫已經存在了,可以將本地倉庫理解爲緩存,有了本地倉庫就不用每次從遠程倉庫下載了。項目所需要的插件或jar包,優先從本地倉庫找。

4.2 搭建本地倉庫

 默認本地倉庫地址:user.dir/.m2/repository, {user.dir}表示windows用戶目錄。
 配置本地倉庫需要將repository.rar(自己去網上下載)解壓至自己的電腦上。在maven的安裝目錄下的conf/settings.xml文件中配置本地倉庫的位置:
這裏寫圖片描述
 將localRepository的地址改爲你解壓的repository.rar的地址。

 將MyEclipse上的maven默認倉庫地址改爲你解壓的repository.rar的地址。打開windows下的preference做如下圖的操作,這樣,本地倉庫算是搭建好了。
這裏寫圖片描述

4.3 maven項目工程目錄

  • src/main/java—存放項目的.java文件
  • src/main/resources—存放項目資源文件,如spring、hibernate配置文件
  • src/test/java—存放所有單元測試.java文件,如JUnit測試類
  • src/test/resources—測試資源文件
  • target—項目輸出位置,編譯後的class文件會輸出到此目錄
  • pom.xml—maven項目核心配置文件
  • 構建web工程

5.1 創建maven工程

 右擊空白處,選擇new Maven Project,這裏將create a simple project勾選上
這裏寫圖片描述
 照着如下圖定義座標,注意groupId一般爲公司或組織的名稱,ArtifactId一般爲項目的名稱,packaging爲打包方法,web工程爲war,java工程爲jar。
這裏寫圖片描述
 創建好後,pom.xml上會有個紅叉,手動在main下新建一個web-app,在web-app下新建一個WEB-INF,再在其下建一個web.xml。在pom.xml裏寫上如下類容:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>  
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

5.2 定義web.xml

 在src/web-app/WEB-INF下的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">

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

5.3編寫servlet

 在src/main/java中創建servlet,代碼如下:

package com;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletTest extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");
        this.doPost(request,response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html");
        request.getRequestDispatcher("/jsp/test.jsp").forward(request, response);
    }

}

5.4 編寫jsp

這裏寫圖片描述
 index.jsp的類容如下:

<body>
    Hello Word <br>
</body>

 test.jsp的類容如下:

<body>
    運行一個servlet <br>
</body>

5.5 添加servlet/jsp的jar包

 在pom.xml中添加如下類容,然後在你建的工程上右擊選擇maven-》update project加載所需要的servlet/jsp包。

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

5.6 配置servlet

 在web.xml裏配置servlet

<servlet>
    <servlet-name>ServletTest</servlet-name>
    <servlet-class>com.ServletTest</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletTest</servlet-name>
    <url-pattern>/test</url-pattern>
</servlet-mapping>

5.7 運行

 右擊工程選擇run as ,選擇maven build,在Goals一行填寫:tomcat:run運行。(特別注意,當所有步驟都做完之後,如果項目工程還有小紅叉,解決辦法:右擊工程選擇maven-》update project把Offline勾選上)
這裏寫圖片描述

版權聲明:本文爲博主原創文章,未經博主允許不得轉載


關注公衆號:猿小雷
獲取更多文章,第一之間掌握技術。
有問題請在公衆號內回覆,小雷會一一回答。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章