學習Java 的同學就一定會學習Maven, 那麼Maven爲什麼會得到大量用戶的使用呢?它是用來幹什麼的呢 ?接下來就來介紹
Q:Maven的作用?
(1)Maven可以自動化構建項目,可以從清理、編譯、測試到生成報告、打包、部署等等功能都可以自動化完成,將我們從繁瑣的工作中解脫出來
(2)解決項目的依賴繁雜以及版本不一致的問題
(3)Maven管理了項目中零散的信息,比如項目描述等,還能輕鬆獲得項目文檔、測試報告等等
(4)可以將分模塊的項目更好地管理起來(Maven的繼承和聚集)
Q: Maven目錄結構?
Maven主要的目錄結構如下:
--bin (存放了maven運行的腳本命令,我們調用的maven命令其實就在裏面)
--boot (Maven 的類加載器)
--conf (Maven 的配置文件,裏面包含重要的setting.xml文件,通過修改該文件可以配置 Maven 行爲)
--lib (包含Maven 運行的所有類庫,以及一個超級POM,所有Maven項目都會默認繼承這個Maven項目)
Q:setting.xml 的主要配置
首先,我們需要明白 setting.xml 所處的位置不同,管轄的範圍也不一樣:
處於Maven安裝目錄的conf 文件夾下的settings.xml 是全局性的,通過設置裏面的元素可以對全局進行管理,
而在user/.m2/settings.xml裏面的settings,xml是對當前用戶的設置,在裏面的設置會覆蓋全局設置
settings.xml 文件包含的配置信息如下:
<settings> <localRepository/> <interactiveMode/> <usePluginRegistry/> <offline/> <pluginGroups/> <servers/> <mirrors/> <proxies/> <profiles/> <activeProfiles/> </settings>
localRepository:主要用於設置Maven的本地倉庫,Maven默認的本地倉庫處於 user/.m2/repository 裏面,可以修改爲你想要的地方, 比如 <localRepository> E:/repository </localRepository>
offline: 表示是否開啓離線模式,默認爲false,開啓離線模式後,在每次構建時,就不會從遠程倉庫下載最新的依賴,當然,如果開啓離線模式後,需要的依賴包本地倉庫沒有,就會報錯,而不是自動去下載
servers:一般用於對遠程倉庫的訪問添加用戶名密碼等認證信息,因爲如果要訪問的遠程倉庫需要進行身份認證,就必須填寫這些信息,將認證信息寫在這裏而不是pom.xml文件中的原因是pom.xml 文件是需要
隨着項目發佈的,不能起到保密作用,寫法如下:
<servers> <server> <id></id> (id需要與pom.xml中聲明的遠程倉庫id相同) <username></username> <password></password> </server> </servers>
mirrors:用於設置Maven鏡像,鏡像是指本來要訪問A遠程倉庫的,現在全部轉到訪問B鏡像,我們一般將阿里雲的鏡像設置爲遠程中央倉庫的鏡像
<mirror> <id>AliMaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf>
</mirror>
proxies:設置代理,一般用於公司內部不能直接訪問外網,必須通過代理服務器對外網進行訪問的情況
Q:在eclipse中使用Maven需要注意什麼?
1、在eclipse中使用自己的Maven,確保eclipse中的Maven和命令行的Maven是同一個
2、確保自己eclipse能找到正確的settings.xml配置文件
3、修改 jre 版本,由於用Maven模板創建出來的Maven項目,使用的jre版本很低,所以需要進行修改,修改方式:
點擊項目右鍵-->buildPath,然後按照如下操作:
同時還要修改pom.xml文件的編譯插件的版本(因爲我們之前說過,所有Maven都會繼承lib文件夾中的父類POM,但是父類POM中的編譯插件配置版本實在是太老了,所以我們必須手動覆蓋掉)
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <verbal>true</verbal> </configuration> </plugin> </plugins> </build>
4、在eclipse中添加依賴,在eclipse中搜索maven依賴,並且添加到pom中: 右鍵點擊項目,選擇Mavem --> Add dependency,如下圖:
在搜索框中搜索即可,如果搜索之後沒有搜索到,但是本地倉庫確實有此依賴,那麼需要更新索引,點擊window-->show view --> other -->maven repository,如下圖,點擊local repository的 rebuid index就可以了