Maven項目管理工具(二) 實戰應用

1.安裝配置

l 下載

http://maven.apache.org/download.cgi

l 安裝

解壓到指定軟件安裝目錄即可

l 目錄介紹

bin:存放執行腳本文件的地方

boot:存放一些擴展的地方

conf:maven的核心配置文件存放的路徑

lib:maven的依賴包

l 配置環境變量

1、配置JAVA_HOME和MAVEN_HOME

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wkYlAKEE-1593162352216)(../img-folder/Maven/wps8.jpg)]

2.配置path

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GTe1C4Gv-1593162352228)(../img-folder/Maven/wps9.jpg)]

l 驗證

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-REnAdJf7-1593162352235)(../img-folder/Maven/wps10.jpg)]

l 配置本地倉庫

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-P4mBJd7p-1593162352239)(../img-folder/Maven/1576483429511.png)]

1.在maven的安裝目錄中conf/ settings.xml文件,在這裏配置本地倉庫

指定本地倉庫位置(默認在 user.dir/.m2/repository{user.dir}/.m2/repository,{user.dir}表示windows用戶目錄)

​ C:\develop\repository

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Nj3W8pQN-1593162352242)(../img-folder/Maven/wps12.jpg)]

2.指定阿里雲鏡像位置(中央倉庫默認不用配置,此處只是使用阿里雲鏡像替代中央倉庫,提高jar的下載速度)

<mirror>
<id>alimaven</id>
<name>aliyunmaven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>        
</mirror>

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-v2ANTcYQ-1593162352246)(../img-folder/Maven/wps13.jpg)]

2.Eclipse關聯Maven

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-b6fFzVlQ-1593162352248)(../img-folder/Maven/wps14.jpg)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XOIyeKPl-1593162352250)(../img-folder/Maven/wps15.jpg)]

3.IDEA關聯Maven

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GGFSjL2J-1593162352253)(../img-folder/Maven/wps16.jpg)]

4.使用Maven管理項目(重點)

l 目錄規範

使用maven創建的工程我們稱它爲maven工程,maven工程具有一定的目錄規範,如下:

src/main/java —— 存放項目的.java文件

src/main/resources —— 存放項目資源文件,如spring,hibernate配置文件

src/test/java —— 存放所有單元測試.java文件,如JUnit測試類

src/test/resources —— 測試資源文件

target —— 項目輸出位置,編譯後的class文件會輸出到此目錄

pom.xml ——maven項目核心配置文件

l 項目示例

下面是一個完整的使用Maven管理的JavaWeb項目的目錄結構

Project

|-src

| |-main

| | |-java —— 存放項目的.java文件

| | |-resources —— 存放項目資源文件,如spring, hibernate配置文件

​ |-webapp —— webapp目錄是web工程的主目錄

​ |-WEB-INF

​ |-web.xml

| |-test

| |-java ——存放所有測試.java文件,如JUnit測試類

| |-resources —— 測試資源文件

|-target —— 目標文件輸出位置例如.class、.jar、.war文件

|-pom.xml ——maven項目核心配置文件

Maven骨架:其實就是maven創建不同的項目結構

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-o5mbSoqg-1593162352255)(../img-folder/Maven/wps17.jpg)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yKgFEIhj-1593162352257)(../img-folder/Maven/wps18.jpg)]

(1)普通Java項目

創建項目

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

編寫代碼

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ujog9sk5-1593162352267)(../img-folder/Maven/wps23.jpg)]

編寫測試

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LlXWJx6u-1593162352268)(../img-folder/Maven/wps24.jpg)]

l 添加Test依賴

可以通過http://mvnrepository.com/tags/maven網址搜索jar包的座標

<dependencies>
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
       </dependency>
</dependencies>

配置maven的編譯級別

<!--編譯插件,可以配置編譯版本,因爲maven默認是按照1.5進行編譯的-->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>utf-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

測試用例(Use Case):針對一個功能或者一個功能點的測試邏輯

(2)JavaWeb項目

創建項目

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

l 解決IntelliJ IDEA創建Maven項目速度慢問題

https://www.cnblogs.com/del88/p/6286887.html

增加屬性:archetypeCatalog=internal

或者

全局屬性

在maven的VM Options加上 -DarchetypeCatalog=internal 參數,如下:

在這裏插入圖片描述
在這裏插入圖片描述

完善目錄

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-R2Yz9p6X-1593162352285)(../img-folder/Maven/wps32.jpg)]

添加依賴
<?xml version="1.0" encoding="UTF-8"?>

<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>

   <groupId>com.bigdata</groupId>
   <artifactId>maven_02</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>war</packaging>

   <properties>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       <maven.compiler.source>1.8</maven.compiler.source>
       <maven.compiler.target>1.8</maven.compiler.target>
   </properties>

   <dependencies>
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
           <scope>test</scope>
       </dependency>
       <!-- Servlet -->
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>javax.servlet-api</artifactId>
           <version>3.1.0</version>
           <!--只需編譯無需打包,tomcat自帶-->
           <scope>provided</scope>
       </dependency>
       <!-- JSP -->
       <dependency>
           <groupId>javax.servlet.jsp</groupId>
           <artifactId>jsp-api</artifactId>
           <version>2.2</version>
           <!--只需編譯無需打包,tomcat自帶-->
           <scope>provided</scope>
       </dependency>
       <!-- JSTL -->
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>jstl</artifactId>
           <version>1.2</version>
           <!--只是運行時依賴-->
           <scope>runtime</scope>
       </dependency>
   </dependencies>

   <build>
        <plugins>
           <!--配置編譯級別-->
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.1</version>
               <configuration>
                   <source>1.8</source>
                   <target>1.8</target>
               </configuration>
           </plugin>
           <!--打包跳過單元測試-->
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-surefire-plugin</artifactId>
               <version>2.18.1</version>
               <configuration>
                   <skipTests>true</skipTests>
               </configuration>
           </plugin>
           <!-- Tomcat -->
           <plugin>
               <groupId>org.apache.tomcat.maven</groupId>
               <artifactId>tomcat7-maven-plugin</artifactId>
               <version>2.2</version>
               <configuration>
                   <path>/${project.artifactId}</path>
                   <port>8080</port>
               </configuration>
           </plugin>
       </plugins>
   </build>

</project>
編寫代碼

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-B7NpPju3-1593162352287)(../img-folder/Maven/wps33.jpg)]

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
   @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       doPost(req, resp);
   }

   @Override
   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       resp.getWriter().write(new Date().toString());
   }
}
部署運行

l 添加到外置Tomcat運行

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

http://localhost:8080/hello

l 使用Tomcat插件運行

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-I4JSbkE9-1593162352295)(../img-folder/Maven/wps38.jpg)]

或手動指定命令

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-lYKpnOJ0-1593162352297)(../img-folder/Maven/wps39.jpg)]

5.常見Maven命令

(1)clean

clean是maven工程的清理命令,執行 clean會刪除整個target目錄及內容。

(2)compile

compile是maven工程的編譯命令,作用是將src/main/java下的文件編譯爲class文件輸出到target目錄下。

(3)test

test是maven工程的測試命令,會執行src/test/java下的單元測試類。

注意:

1、需要注掉pom.xml中打包跳過測試那一段

2、Maven要求測試類放在src/test/java目錄下,且測試方法的

類名以Test結尾、方法名以test開頭

(4)package

package是maven工程的打包命令,對於java工程執行package打成jar包,對於web工程打成war包。

(5)install

install是maven工程的安裝命令,執行install將項目打成jar包或war包發佈到本地倉庫。

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