前言
一直想寫一篇關于Maven的文章,但是不知如何下筆,如果說能使用,會使用Maven的話,一、兩個小時足矣,不需要搞懂各種概念。那么給大家來分享下我是如何理解并使用maven的。
什么是Maven?
Maven是一個用于項目構(gòu)建的工具,通過它便捷的管理項目的生命周期。即項目的jar包依賴,開發(fā),測試,發(fā)布打包,主要管理工作是:依賴管理,項目一鍵構(gòu)建。
為什么要使用Maven
使用maven構(gòu)建的項目,整個項目的體積小
maven項目不需要手動導入jar包,通過在pom.xml中添加依賴,引用依賴會自動從maven倉庫下載jar包,方便快捷。
項目一鍵構(gòu)建:使用maven可以快速地對項目進行編譯--測試--運行--打包--安裝
maven支持跨平臺操作,可在window、linux、mac上使用
maven遵循規(guī)范開發(fā)有利于提高大型團隊的開發(fā)效率,降低項目的維護成本,屬于主流技術(shù),一般公司都會使用maven來構(gòu)建項目
maven倉庫的配置
ps:下載項目引用需要jar包的時候存放的本地路徑
倉庫的分類
本地倉庫
私服(公司的倉庫)
中央倉庫
三個倉庫之間的關系
三者之間的關系是,當我們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,如果沒找到就回去私服找,如果還是沒有,最后就回去中央倉庫找。其過程如下圖:
前言
一直想寫一篇關于Maven的文章,但是不知如何下筆,如果說能使用,會使用Maven的話,一、兩個小時足矣,不需要搞懂各種概念。那么給大家來分享下我是如何理解并使用maven的。
什么是Maven?
Maven是一個用于項目構(gòu)建的工具,通過它便捷的管理項目的生命周期。即項目的jar包依賴,開發(fā),測試,發(fā)布打包,主要管理工作是:依賴管理,項目一鍵構(gòu)建。
為什么要使用Maven
使用maven構(gòu)建的項目,整個項目的體積小
maven項目不需要手動導入jar包,通過在pom.xml中添加依賴,引用依賴會自動從maven倉庫下載jar包,方便快捷。
項目一鍵構(gòu)建:使用maven可以快速地對項目進行編譯--測試--運行--打包--安裝
maven支持跨平臺操作,可在window、linux、mac上使用
maven遵循規(guī)范開發(fā)有利于提高大型團隊的開發(fā)效率,降低項目的維護成本,屬于主流技術(shù),一般公司都會使用maven來構(gòu)建項目
maven倉庫的配置
ps:下載項目引用需要jar包的時候存放的本地路徑
倉庫的分類
本地倉庫
私服(公司的倉庫)
中央倉庫
三個倉庫之間的關系
三者之間的關系是,當我們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,如果沒找到就回去私服找,如果還是沒有,最后就回去中央倉庫找。其過程如下圖:
前言
一直想寫一篇關于Maven的文章,但是不知如何下筆,如果說能使用,會使用Maven的話,一、兩個小時足矣,不需要搞懂各種概念。那么給大家來分享下我是如何理解并使用maven的。
什么是Maven?
Maven是一個用于項目構(gòu)建的工具,通過它便捷的管理項目的生命周期。即項目的jar包依賴,開發(fā),測試,發(fā)布打包,主要管理工作是:依賴管理,項目一鍵構(gòu)建。
為什么要使用Maven
使用maven構(gòu)建的項目,整個項目的體積小
maven項目不需要手動導入jar包,通過在pom.xml中添加依賴,引用依賴會自動從maven倉庫下載jar包,方便快捷。
項目一鍵構(gòu)建:使用maven可以快速地對項目進行編譯--測試--運行--打包--安裝
maven支持跨平臺操作,可在window、linux、mac上使用
maven遵循規(guī)范開發(fā)有利于提高大型團隊的開發(fā)效率,降低項目的維護成本,屬于主流技術(shù),一般公司都會使用maven來構(gòu)建項目
maven倉庫的配置
ps:下載項目引用需要jar包的時候存放的本地路徑
倉庫的分類
本地倉庫
私服(公司的倉庫)
中央倉庫
三個倉庫之間的關系
三者之間的關系是,當我們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,如果沒找到就回去私服找,如果還是沒有,最后就回去中央倉庫找。其過程如下圖:
前言
一直想寫一篇關于Maven的文章,但是不知如何下筆,如果說能使用,會使用Maven的話,一、兩個小時足矣,不需要搞懂各種概念。那么給大家來分享下我是如何理解并使用maven的。
什么是Maven?
Maven是一個用于項目構(gòu)建的工具,通過它便捷的管理項目的生命周期。即項目的jar包依賴,開發(fā),測試,發(fā)布打包,主要管理工作是:依賴管理,項目一鍵構(gòu)建。
為什么要使用Maven
使用maven構(gòu)建的項目,整個項目的體積小
maven項目不需要手動導入jar包,通過在pom.xml中添加依賴,引用依賴會自動從maven倉庫下載jar包,方便快捷。
項目一鍵構(gòu)建:使用maven可以快速地對項目進行編譯--測試--運行--打包--安裝
maven支持跨平臺操作,可在window、linux、mac上使用
maven遵循規(guī)范開發(fā)有利于提高大型團隊的開發(fā)效率,降低項目的維護成本,屬于主流技術(shù),一般公司都會使用maven來構(gòu)建項目
maven倉庫的配置
ps:下載項目引用需要jar包的時候存放的本地路徑
倉庫的分類
本地倉庫
私服(公司的倉庫)
中央倉庫
三個倉庫之間的關系
三者之間的關系是,當我們在項目中依賴一個jar包時,Maven程序會先去本地倉庫中找,如果沒找到就回去私服找,如果還是沒有,最后就回去中央倉庫找。其過程如下圖:

本地倉庫的配置
找到已安裝的maven路徑,如:apache-maven-3.3.9\conf 目錄下settings.xml 文件并用notepad++打開,ctrl+F找到localRepository標簽,將路徑設置為D:/repository,如下圖:

說明:什么是本地倉庫? 就是是由個人將常用到的jar包放入一個倉庫中,已備自己在項目中使用,可從別人配置好的jar包倉庫拷到自己本地目錄,因為倉庫一般很大,首次下載需要很長一段時間。
配置私服地址
實際工作中,很多項目都會用到maven私服倉庫,一般公司都有統(tǒng)一的maven私服倉庫,由于公司都是統(tǒng)一化管理,這時候我們就要配置統(tǒng)一的私服倉庫,舉例如下:
<mirrors>
<mirror>
<!--This is used to direct the public snapshots repo in the
profile below over to a different nexus group -->
<id>nexus-public-snapshots</id>
<mirrorOf>public-snapshots</mirrorOf>
<url>http://192.168.1.118:8888/nexus/content/repositories/apache-snapshots/</url>
</mirror>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
pom文件說明
pom.xml文件,一般描述了maven項目的基本信息,比如groupId,artifactId,version等,一個最簡單的pom.xml文件至少需要包含四個元素:modelVersion, groupId, artiffactId和version。
比如一個基本的pom.xml文件如下:
<?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.test</groupId> //當前項目的信息
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>//SNAPSHOT(快照)表示該項目還在開發(fā)中。
</project>
其中主要的標簽含義如下:
project:pom.xml 文件中的頂層元素;
modelVersion:指明 POM 使用的對象模型的版本。這個值很少改動。
groupId:指明創(chuàng)建項目的組織或者小組的唯一標識。
GroupId 是項目的關鍵標識,典型的,此標識以組織的完全限定名來定義。比如,org.apache.maven.plugins 是所有 Maven 插件項目指定的 groupId。
artifactId:指明此項目產(chǎn)生的主要產(chǎn)品的基本名稱。項目的主要產(chǎn)品通常為一個 JAR 文件。第二,象源代碼包通常使用 artifactId 作為最后名稱的一部分。典型的產(chǎn)品名稱使用這個格式:
version:項目產(chǎn)品的版本號。Maven 幫助你管理版本,可以經(jīng)??吹?SNAPSHOT 這個版本,表明項目處于開發(fā)階段。
在項目中添加插件,以及對插件的配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>//編譯插件
<version>2.4.3</version>//插件的版本號
<configuration>//對插件進行配置
<source>1.7</source>//源代碼編譯版本
<target>1.7</target>//目標平臺編譯版本;
<encoding>UTF-8</encoding>//設置插件或資源文件的編碼方式。
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>//執(zhí)行測試用例的插件
<version>2.17</version>//插件的版本號
<configuration>//對插件進行配置
<suiteXmlFiles>
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>//測試套件執(zhí)行路徑
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
總結(jié)
到此,關于maven的入門基礎知識總結(jié)完畢,文章知識點相對繁瑣、復雜,還請讀者多次閱讀和實踐,如有錯誤之處,煩請多指正!