Maven使用方法詳及方式詳細(xì)介紹
Maven簡(jiǎn)介
1、軟件開發(fā)中的階段
需要分析:分析項(xiàng)目具體完成的功能,有什么要求,具體怎么實(shí)現(xiàn)。設(shè)計(jì)階段:根據(jù)分析的結(jié)果,設(shè)計(jì)項(xiàng)目的使用什么技術(shù),解決難點(diǎn)。開發(fā)階段:編碼實(shí)現(xiàn)功能,編譯代碼,自我測(cè)試。測(cè)試階段:專業(yè)的測(cè)試人員,測(cè)整個(gè)項(xiàng)目的功能十分符合設(shè)計(jì)要求。出一個(gè)測(cè)試告。項(xiàng)目的打包,發(fā)布階段:給用戶安裝項(xiàng)目。
2、Maven能做什么
1)項(xiàng)目的自動(dòng)構(gòu)建,幫助開發(fā)人員做項(xiàng)目代碼的編譯,測(cè)試,打包,安裝,部署等工作。
2)管理依賴(管理項(xiàng)目中使用的各種jar包)。
依賴:項(xiàng)目中需要使用的其他資源,常見的是jar比如項(xiàng)目要使用mysgl驅(qū)動(dòng),我們就說項(xiàng)目依賴mysgl驅(qū)動(dòng)。
3、沒有使用maven怎么管理依賴
管理jar,需要從網(wǎng)絡(luò)中單獨(dú)下載某個(gè)jar,需要選擇正確版本,手工處理jar文件之間的依賴。a.jar里面要使用b.jar的類。
4、什么是maven
maven是apache基金會(huì)的開源項(xiàng)目,使用java語法開發(fā)。Maven這個(gè)單詞的本意是:專家,內(nèi)行。讀音是['meIv(e)n]或['mevn]。
maven是項(xiàng)目的自動(dòng)化構(gòu)建工具,管理項(xiàng)目的依賴。
約定目錄結(jié)構(gòu)
maven項(xiàng)目使用的大多人遵循的目錄結(jié)構(gòu),叫做約定目錄結(jié)構(gòu)。一個(gè)maven項(xiàng)目是一個(gè)文件夾。
比如項(xiàng)目叫做Hello
maven的使用方式
①maven可以獨(dú)立使用:創(chuàng)建項(xiàng)目,編譯代碼,測(cè)試程序,打包,部署等等。
② maven和idea一起使用:通過idea借助maven,實(shí)現(xiàn)編碼,測(cè)試,打包等等。
POM文件
POM:Project Object Model項(xiàng)目對(duì)象模型,maven把項(xiàng)目當(dāng)做模型處理。操作這個(gè)模型就是操作項(xiàng)目。maven通過pom.xml文件實(shí)現(xiàn)項(xiàng)目的構(gòu)建和依賴的管理。
pom 文件:即 Project Object Model項(xiàng)目對(duì)象模型。 Maven把一個(gè)項(xiàng)目的結(jié)構(gòu)和內(nèi) 容抽象成一個(gè)模型,在xml文件中進(jìn)行聲明,以方便進(jìn)行構(gòu)建和描述,
pom.xml是Maven的靈魂。所以,maven環(huán)境搭建好之后,所有的學(xué)習(xí)和操
作都是關(guān)于pom.xml的。
那么我們來看一下pom.xml文件是什么樣的
<?xml version="1.0" encoding="UTF-8"?> <!--project是跟標(biāo)簽,后面是約束文件--> <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"> <!--pom模型的版本,就是4.0.0--> <modelVersion>4.0.0</modelVersion> <!--坐標(biāo)--> <groupId>youfei1_v</groupId> <artifactId>ch01-Maven-j2se</artifactId> <version>1.0</version> <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> </project>
坐標(biāo)的概念
坐標(biāo)組成是groupid,artifiactld,version。坐標(biāo)概念來自數(shù)學(xué)。
坐標(biāo)作用:確定資源的,是資源的唯一標(biāo)識(shí)。在maven中,每個(gè)資源都有坐標(biāo)。坐標(biāo)值是唯一的。簡(jiǎn)稱叫g(shù)av。
拿servlet依賴舉例
<!--servlet依賴--> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version>
groupid:組織名稱,代碼。公司,團(tuán)體或者單位的標(biāo)識(shí)。這個(gè)值常使用的公司域名的倒寫。例如:學(xué)校的網(wǎng)站www.sanlian.com,groupId:com.sanlian
如果項(xiàng)目規(guī)模比較大,也可以是域名倒寫+大項(xiàng)目名稱。
例如:www.baidu.com , 無人車:com.baidu.appollo
artifactid:項(xiàng)目名稱,如果groupId中有項(xiàng)目,此時(shí)當(dāng)前的值就是子項(xiàng)目名。項(xiàng)目名稱是唯一的。
version:版本,項(xiàng)目的版本號(hào),使用的數(shù)字。三位組成。例如主版本號(hào),次版本號(hào)小版本號(hào),例如:5.2.5。
注意:版本號(hào)中有-SNAPSHOT,表示快照,不是穩(wěn)定的版本。
項(xiàng)目使用gav:
1.每個(gè)maven項(xiàng)目,都需要有一個(gè)自己的gav。
2.管理依賴,需要使用其他的jar,也需要使用gav作為標(biāo)識(shí)。
依賴 dependency
依賴:項(xiàng)目中要使用的其他資源(jar)。
需要使用maven表示依賴,管理依賴。通過使用dependency和gav一起完成依賴的使用。
注意:需要在pom.xml文件中,使用dependencies和dependency,還有g(shù)av完成依賴的說明。
使用依賴的格式:這里拿junit依賴舉例,標(biāo)簽中的指的是項(xiàng)目的公司,標(biāo)簽中指的是項(xiàng)目名稱,標(biāo)簽中指的是項(xiàng)目的版本。
<dependencies> <!--測(cè)試--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies>
注意:標(biāo)簽要放到標(biāo)簽的下面
打包類型
標(biāo)簽:項(xiàng)目打包的類型,有jar,war,ear,pom等等,默認(rèn)是jar。
注意:標(biāo)簽的放置位置是這個(gè)項(xiàng)目的坐標(biāo)下面
例如:
<!--坐標(biāo)--> <groupId>youfei1_v</groupId> <artifactId>ch01-Maven-j2se</artifactId> <version>1.0</version> <packaging>jar</packaging>
倉庫概念
倉庫是存東西的,maven的倉庫存放的是:
1.maven工具自己的jar包。
2.第三方的其他jar,比如項(xiàng)目中要使用mysql驅(qū)動(dòng)。
3.自己寫的程序,可以打包為jar存放到倉庫。
修改本地倉庫位置
本地倉庫(本機(jī)倉庫):位于你自己的計(jì)算機(jī),它是磁盤中的某個(gè)目錄
本地倉庫:默認(rèn)路徑,是你登錄操作系統(tǒng)的賬號(hào)的目錄中/.m2/repository
C:\Users\NING MEI.m2\repository
修改本地倉庫的位置:修改maven工具的配置文件(maven的安裝路徑\conf\setting.xml)步驟:
1)創(chuàng)建一個(gè)目錄,作為倉庫使用。目錄不要有中文和空格。目錄不要太深。
例如:D:\oppo
2)修改setting.xml文件,指定到剛剛創(chuàng)建的目錄,例如:D:\oppo
實(shí)例演示:找到maven安裝目錄下的conf目錄中的settings.xml文件,
在這個(gè)文件里面增加這個(gè)標(biāo)簽,里面指定新的倉庫地址
倉庫的工作方式
倉庫的分類
本地倉庫, 就是你的個(gè)人計(jì)算機(jī)上的文件夾,存放各種jar。
遠(yuǎn)程倉庫,在互聯(lián)網(wǎng)上的,使用網(wǎng)絡(luò)才能使用的倉庫。
①:中央倉庫,最權(quán)威的,所有的開發(fā)人員都共享使用的一個(gè)集中的倉庫,
②:中央倉庫的鏡像:就是中央倉庫的備份,在各大洲,重要的城市都有鏡像。
③:在公司內(nèi)部,在局域網(wǎng)中使用的,不是對(duì)外使用的。
倉庫的使用,maven倉庫的使用不需要人為參與。
如果倉庫中有這個(gè)jar包就會(huì)用,沒有就會(huì)去互聯(lián)網(wǎng)上下載,從網(wǎng)絡(luò)下載的資源,最終會(huì)存到本地倉庫一份, 當(dāng)你下次在用的時(shí)候,直接從本地倉庫首先獲取資源。
例如開發(fā)人員需要使用mysql驅(qū)動(dòng),maven首先查本地倉庫—>私 服—>鏡像—>中央倉庫。
配置文件說明
例如:spring依賴和spring-aspects依賴,這些東西表示我們項(xiàng)目中要用到spring和spring-aspects jar包,由maven在倉庫中找到這個(gè)jar包并使用它。
<!--spring依賴--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.5.RELEASE</version> </dependency> <!--spring-aspects依賴--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.2.5.RELEASE</version> </dependency>
注意:執(zhí)行命令要在項(xiàng)目的pom文件所在的位置執(zhí)行命名。
junit單元測(cè)試
單元測(cè)試(junit):
junit是一個(gè)單元測(cè)試的工具,在java中經(jīng)常使用。
單元:在java中指的是方法。 一個(gè)方法就是一個(gè)單元,方法是測(cè)試的最小單位。
作用:使用junit去測(cè)試方法是否完成了要求。開發(fā)人員自測(cè)。
使用單元測(cè)試
<dependencies> <!--測(cè)試--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies>
在src/test/java目錄中創(chuàng)建測(cè)試類文件。寫測(cè)試代碼,單元測(cè)試使用的建議:
1.測(cè)試類的定義,名稱一般是Test+要測(cè)試的類名稱
2.測(cè)試類它的包名和要測(cè)試的類包名一樣。
3.在類中定義方法,要測(cè)試代碼。
方法的定義:public方法, 沒有返回值
方法名稱自定義(建議Test+測(cè)試的方法名稱)
方法沒有參數(shù)
4在測(cè)試類中的方法,可以單獨(dú)執(zhí)行。測(cè)試類也可以單獨(dú)執(zhí)行
5.在方法的上面加入@Test
生命周期與插件和命令
maven的生命周期:項(xiàng)目構(gòu)建的各個(gè)階段。包括清理,編譯,測(cè)試,報(bào)告,打包,安裝,部署。
插件:要完成構(gòu)建項(xiàng)目的各個(gè)階段,要使用maven的命令,執(zhí)行命令的功能是通過插件完成的。插件就是jar,一些類。
命令:執(zhí)行maven功能是由命令發(fā)出的。比如mvn compile
命令:
① mvn clean:清理命令,作用刪除以前生成的數(shù)據(jù),刪除target目錄。
插件:maven-clean-plugin,版本是2.5。
②mvn compile:編譯命令,執(zhí)行的代碼編譯,把src/main/java目錄中的java代碼編譯為class文件,同時(shí)把class文件拷貝到target/classes目錄。這個(gè)目錄classes是存放類文件的根目錄(也叫做類路徑, classpath)
插件:maven-compiler-plugin版本3.1編譯代碼的插件
maven-resources-plugin版本2.6資源插件,處理文件的。作用是把src/main/resources目錄中的文件拷貝target/classes目錄中。
③mvn test-compile:編譯命令,編譯src/test/java目錄中的源文件,把生成的class拷貝到target/test-classes目錄。同時(shí)把src/test/resources目錄中的文件拷貝到test-clasess目錄
插件:maven-compiler-plugin版本31編譯代碼的插件
maven-resources-plugin版本2.6資源插件,處理文件的
④mvn test:測(cè)試命令,作用執(zhí)行test-classes目錄的程序,測(cè)試src/main/java目錄中的主程序代碼是否符合要求。
插件:maven-surefire-plugin版本2.12.4
⑤mvn package:打包,作用是把項(xiàng)目中的資源class文件和配置文件都放到一個(gè)床縮文件中,默認(rèn)壓縮文件是jar
類型的。web應(yīng)用是war類型,擴(kuò)展是jar,war的。
插件:maven-jar-plugin版本2.4執(zhí)行打包處理。生成一個(gè)jar擴(kuò)展的文件,放在target目錄下,I
打包的文件包含的是src/main目錄中的所有的生成的class和配置文件和test無關(guān)。
⑥mvn install:把生成的打包的文件,安裝到maven倉庫。
插件:maven-install-plugin版本2.4把生成的jar文件安裝到本地倉庫。
注意:每執(zhí)行一個(gè)命令,都會(huì)自動(dòng)先執(zhí)行前面的, 例如:執(zhí)行第二個(gè)編譯命令,它首先會(huì)自動(dòng)執(zhí)行清理命令,執(zhí)行第三個(gè)編譯test命令,它首先會(huì)自動(dòng)執(zhí)行第一個(gè)清理命令和第二個(gè)編譯命令。
自定義配置插件
在pom.xml文件中,build標(biāo)簽中,設(shè)置插件。
例如設(shè)置構(gòu)建項(xiàng)目相關(guān)內(nèi)容
<build> <plugins> <!--設(shè)置插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <!--指定編譯代碼的jdk版本--> <target>1.8</target> <!--運(yùn)行java程序使用的jdk版本--> </configuration> </plugin> </plugin> </plugin>
注意:默認(rèn)使用1.7版本的jdk 通過此方式 可以更改;build標(biāo)簽和project標(biāo)簽平級(jí)。
到此這篇關(guān)于Maven使用方法詳及方式詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Maven使用方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot2如何集成Elasticsearch6.x(TransportClient方式)
這篇文章主要介紹了SpringBoot2如何集成Elasticsearch6.x(TransportClient方式)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05在springboot中添加mvc功能的正確姿勢(shì)講解
這篇文章主要介紹了在springboot中添加mvc功能的正確姿勢(shì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java模擬實(shí)現(xiàn)QQ三方登錄(單點(diǎn)登錄2.0)
這篇文章主要為大家詳細(xì)介紹了Java模擬實(shí)現(xiàn)QQ三方登錄,單點(diǎn)登錄2.0,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06springcloud之Feign、ribbon如何設(shè)置超時(shí)時(shí)間和重試機(jī)制
這篇文章主要介紹了springcloud之Feign、ribbon如何設(shè)置超時(shí)時(shí)間和重試機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08簡(jiǎn)單了解mybatis攔截器實(shí)現(xiàn)原理及實(shí)例
這篇文章主要介紹了簡(jiǎn)單了解mybatis攔截器實(shí)現(xiàn)原理及實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存
這篇文章主要介紹了Java虛擬機(jī)使用jvisualvm工具遠(yuǎn)程監(jiān)控tomcat內(nèi)存,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11MyBatis-Plus 主鍵生成策略的幾種實(shí)現(xiàn)方式
主鍵生成策略是指在數(shù)據(jù)庫中為每條記錄生成唯一標(biāo)識(shí)符的方法,本文就來介紹一下MyBatis-Plus 主鍵生成策略的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05