<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
需要分析:分析專案具體完成的功能,有什麼要求,具體怎麼實現。設計階段:根據分析的結果,設計專案的使用什麼技術,解決難點。開發階段:編碼實現功能,編譯程式碼,自我測試。測試階段:專業的測試人員,測整個專案的功能十分符合設計要求。出一個測試告。專案的打包,釋出階段:給使用者安裝專案。
1)專案的自動構建,幫助開發人員做專案程式碼的編譯,測試,打包,安裝,部署等工作。
2)管理依賴(管理專案中使用的各種jar包)。
依賴:專案中需要使用的其他資源,常見的是jar比如專案要使用mysgl驅動,我們就說專案依賴mysgl驅動。
管理jar,需要從網路中單獨下載某個jar,需要選擇正確版本,手工處理jar檔案之間的依賴。a.jar裡面要使用b.jar的類。
maven是apache基金會的開源專案,使用java語法開發。Maven這個單詞的本意是:專家,內行。讀音是['meIv(e)n]或['mevn]。
maven是專案的自動化構建工具,管理專案的依賴。
maven專案使用的大多人遵循的目錄結構,叫做約定目錄結構。一個maven專案是一個資料夾。
比如專案叫做Hello
①maven可以獨立使用:建立專案,編譯程式碼,測試程式,打包,部署等等。
② maven和idea一起使用:通過idea藉助maven,實現編碼,測試,打包等等。
POM:Project Object Model專案物件模型,maven把專案當做模型處理。操作這個模型就是操作專案。maven通過pom.xml檔案實現專案的構建和依賴的管理。
pom 檔案:即 Project Object Model專案物件模型。 Maven把一個專案的結構和內 容抽象成一個模型,在xml檔案中進行宣告,以方便進行構建和描述,
pom.xml是Maven的靈魂。所以,maven環境搭建好之後,所有的學習和操
作都是關於pom.xml的。
那麼我們來看一下pom.xml檔案是什麼樣的
<?xml version="1.0" encoding="UTF-8"?> <!--project是跟標籤,後面是約束檔案--> <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> <!--座標--> <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>
座標組成是groupid,artifiactld,version。座標概念來自數學。
座標作用:確定資源的,是資源的唯一標識。在maven中,每個資源都有座標。座標值是唯一的。簡稱叫gav。
拿servlet依賴舉例
<!--servlet依賴--> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version>
groupid:組織名稱,程式碼。公司,團體或者單位的標識。這個值常使用的公司域名的倒寫。例如:學校的網站www.sanlian.com,groupId:com.sanlian
如果專案規模比較大,也可以是域名倒寫+大專案名稱。
例如:www.baidu.com , 無人車:com.baidu.appollo
artifactid:專案名稱,如果groupId中有專案,此時當前的值就是子專案名。專案名稱是唯一的。
version:版本,專案的版本號,使用的數位。三位組成。例如主版本號,次版本號小版本號,例如:5.2.5。
注意:版本號中有-SNAPSHOT,表示快照,不是穩定的版本。
專案使用gav:
1.每個maven專案,都需要有一個自己的gav。
2.管理依賴,需要使用其他的jar,也需要使用gav作為標識。
依賴:專案中要使用的其他資源(jar)。
需要使用maven表示依賴,管理依賴。通過使用dependency和gav一起完成依賴的使用。
注意:需要在pom.xml檔案中,使用dependencies和dependency,還有gav完成依賴的說明。
使用依賴的格式:這裡拿junit依賴舉例,標籤中的指的是專案的公司,標籤中指的是專案名稱,標籤中指的是專案的版本。
<dependencies> <!--測試--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies>
注意:標籤要放到標籤的下面
標籤:專案打包的型別,有jar,war,ear,pom等等,預設是jar。
注意:標籤的放置位置是這個專案的座標下面
例如:
<!--座標--> <groupId>youfei1_v</groupId> <artifactId>ch01-Maven-j2se</artifactId> <version>1.0</version> <packaging>jar</packaging>
倉庫是存東西的,maven的倉庫存放的是:
1.maven工具自己的jar包。
2.第三方的其他jar,比如專案中要使用mysql驅動。
3.自己寫的程式,可以打包為jar存放到倉庫。
本地倉庫(本機倉庫):位於你自己的計算機,它是磁碟中的某個目錄
本地倉庫:預設路徑,是你登入作業系統的賬號的目錄中/.m2/repository
C:UsersNING MEI.m2repository
修改本地倉庫的位置:修改maven工具的組態檔(maven的安裝路徑confsetting.xml)步驟:
1)建立一個目錄,作為倉庫使用。目錄不要有中文和空格。目錄不要太深。
例如:D:oppo
2)修改setting.xml檔案,指定到剛剛建立的目錄,例如:D:oppo
範例演示:找到maven安裝目錄下的conf目錄中的settings.xml檔案,
在這個檔案裡面增加這個標籤,裡面指定新的倉庫地址
倉庫的分類
本地倉庫, 就是你的個人計算機上的資料夾,存放各種jar。
遠端倉庫,在網際網路上的,使用網路才能使用的倉庫。
①:中央倉庫,最權威的,所有的開發人員都共用使用的一個集中的倉庫,
②:中央倉庫的映象:就是中央倉庫的備份,在各大洲,重要的城市都有映象。
③:在公司內部,在區域網中使用的,不是對外使用的。
倉庫的使用,maven倉庫的使用不需要人為參與。
如果倉庫中有這個jar包就會用,沒有就會去網際網路上下載,從網路下載的資源,最終會存到本地倉庫一份, 當你下次在用的時候,直接從本地倉庫首先獲取資源。
例如開發人員需要使用mysql驅動,maven首先查本地倉庫—>私 服—>映象—>中央倉庫。
例如:spring依賴和spring-aspects依賴,這些東西表示我們專案中要用到spring和spring-aspects jar包,由maven在倉庫中找到這個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>
注意:執行命令要在專案的pom檔案所在的位置執行命名。
單元測試(junit):
junit是一個單元測試的工具,在java中經常使用。
單元:在java中指的是方法。 一個方法就是一個單元,方法是測試的最小單位。
作用:使用junit去測試方法是否完成了要求。開發人員自測。
使用單元測試
<dependencies> <!--測試--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies>
在src/test/java目錄中建立測試類檔案。寫測試程式碼,單元測試使用的建議:
1.測試類的定義,名稱一般是Test+要測試的類名稱
2.測試類它的包名和要測試的類包名一樣。
3.在類中定義方法,要測試程式碼。
方法的定義:public方法, 沒有返回值
方法名稱自定義(建議Test+測試的方法名稱)
方法沒有引數
4在測試類中的方法,可以單獨執行。測試類也可以單獨執行
5.在方法的上面加入@Test
maven的生命週期:專案構建的各個階段。包括清理,編譯,測試,報告,打包,安裝,部署。
外掛:要完成構建專案的各個階段,要使用maven的命令,執行命令的功能是通過外掛完成的。外掛就是jar,一些類。
命令:執行maven功能是由命令發出的。比如mvn compile
命令:
① mvn clean:清理命令,作用刪除以前生成的資料,刪除target目錄。
外掛:maven-clean-plugin,版本是2.5。
②mvn compile:編譯命令,執行的程式碼編譯,把src/main/java目錄中的java程式碼編譯為class檔案,同時把class檔案拷貝到target/classes目錄。這個目錄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目錄。同時把src/test/resources目錄中的檔案拷貝到test-clasess目錄
外掛:maven-compiler-plugin版本31編譯程式碼的外掛
maven-resources-plugin版本2.6資源外掛,處理檔案的
④mvn test:測試命令,作用執行test-classes目錄的程式,測試src/main/java目錄中的主程式程式碼是否符合要求。
外掛:maven-surefire-plugin版本2.12.4
⑤mvn package:打包,作用是把專案中的資源class檔案和組態檔都放到一個床縮檔案中,預設壓縮檔案是jar
型別的。web應用是war型別,擴充套件是jar,war的。
外掛:maven-jar-plugin版本2.4執行打包處理。生成一個jar擴充套件的檔案,放在target目錄下,I
打包的檔案包含的是src/main目錄中的所有的生成的class和組態檔和test無關。
⑥mvn install:把生成的打包的檔案,安裝到maven倉庫。
外掛:maven-install-plugin版本2.4把生成的jar檔案安裝到本地倉庫。
注意:每執行一個命令,都會自動先執行前面的, 例如:執行第二個編譯命令,它首先會自動執行清理命令,執行第三個編譯test命令,它首先會自動執行第一個清理命令和第二個編譯命令。
在pom.xml檔案中,build標籤中,設定外掛。
例如設定構建專案相關內容
<build> <plugins> <!--設定外掛--> <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> <!--執行java程式使用的jdk版本--> </configuration> </plugin> </plugin> </plugin>
注意:預設使用1.7版本的jdk 通過此方式 可以更改;build標籤和project標籤平級。
到此這篇關於Maven使用方法詳及方式詳細介紹的文章就介紹到這了,更多相關Maven使用方法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45