maven的安裝與配置使用
一 maven的安裝安裝
1 在鏡像(https://mirrors.tuna.tsinghua.edu.cn/apache/)中下載指定的版本(注意,Maven 版本與IDE版本應保持匹配)。配置
2 解壓之后需要進行配置
系統變量:M2_HOME:Maven安裝路徑
JAVA_HOME: JDK安裝路徑
path: %MAVEN_HOME%\bin (這樣系統就可以在cmd環境下執行mvn命令了)
打開 cmd,使用在里面敲:mvn -v 可以看到正常版本信息,安裝則表明配置成功。配置
接著,使用可以在cmd環境下輸入命令: mvn help:system 這樣Maven就會不斷的安裝從網絡上下各種一來文件。
3 在Eclipse中安裝配置Maven
1) 基本配置
preferences -> maven -> local ... ; user....
十分簡單的配置。。使用。安裝主要是配置配置Maven 的安裝路徑,settings.xml的使用路徑。
2)m2e插件的安裝擴展配置
前面兩步只是完成了Maven的基本綁定,如若想要在Eclipse中正常使用前面所綁定的配置Maven,則必須安裝一個小插件——m2e插件,使用該插件起到銜接Eclipse與Maven的作用。安裝步驟如下:
1)打開eclipse,菜單“Help”-“Install New Software...”
2)在Work with 地址欄輸入:http://download.eclipse.org/releases/neon (注意:neon是eclipse對應的版本名稱)。
3)在filter框中輸入maven便能定位要安裝的插件Maven Integration for Eclipse,選中之后點擊next按鈕進行安裝步驟。
4)安裝完成重啟eclipse,菜單:Window --> preferences ,輸入maven進行相關設置。
注:起初我所使用的Eclipse版本為 eclipse-jee-mars-1-win32-x86_64.zip,后來發現 eclipse-jee-mars-2-win32-x86_64.zip 已經集成了諸多必要的插件。因此建議安裝mar2版本,這樣可以省去很多時間和精力。
3)查找jar包
直接去 官 網 中搜索jar包的名稱,即可使用官網所提供的maven坐標,添加到pom文件中即可。
二 maven的重要概念
1 基本組織規范
Maven采用了預定優于配置(Convention over Configuraion, COC) 原則,根據此原則,Maven 的主要預定有以下幾條。
源代碼應該位于${ basedir}/src/main/java 路徑下
資源文件應該位于${ basedir}/src/main/resources路徑下
測試代碼應該位于${ basedir}/src/test路徑下
編譯生成的class文件應該位于${ basedir}/target/classes路徑下。
項目應該會產生一個JAR文件,并將生成的JAR包放在${ basedir}/target路徑下。
2 Maven的生命周期(lyfecycle)
默認的聲明周期包含以下幾個核心階段。
compile 編譯項目
test 單元測試
package 項目打包
install 安裝到本地倉庫
deploy 部署到遠程倉庫
3 Maven坐標
pom.xml文件成為項目的對象模型(Project Object Model)描述文件。POM為項目提供了一個Maven坐標,也被成為唯一標識符,由以下四個元素組成(Maven坐標通常用英文冒號作為分隔符來書寫)。
<groupId> 命名空間 : <artifactId> 項目名 : <packaging> 打包類型 : <version> 項目版本 。
4 資源庫Repository
第一次運行Maven時,Maven會自動從遠程資源庫下載許多文件,包括各種Maven插件,以及項目所依賴的庫。實際上,初始的Maven 工具非常的小,這是因為Maven本身的功能非常有限。幾乎所有的功能是由Maven插件完成的。實際上Maven類似前端的Gulp工具。主要利用配置文件完成包管理功能。Maven所依賴的包都會保存在資源庫中。Maven資源庫可分為三種:
本地資源庫(Local Repository) 可在setting.xml中進行配置。
遠程資源庫 通常由公司或團隊進行集中維護。目的是為了讓全公司的項目使用相同的JAR包系統。
中央資源庫(默認):由Mavwn官方維護。包含各種公開的Maven插件及第三方項目。地址為http://repo.maven.org/maven3
當Maven需要使用某個插件或JAR包時,MAVEN的搜索順序為:本地資源庫 —> 遠程資源庫 —> 中央資源庫。
一般情況下,第一次運行后,從遠程或中央資源庫加載的資源會保存在本地資源庫目錄中,下次需要時會直接從本地資源庫中提取。
此外,遠程鏡像也可以納入遠程資源庫的范疇。可以在<mirror>元素或<profile>元素中進行配置遠程資源庫的路徑。
5 依賴管理
POM包含的<dependency/>元素定義了一個依賴框架或依賴類庫。Maven依賴管理具有傳遞性,有時需要使用<exclusions...>子元素排除指定的依賴。例如:
<dependency>
<groupId>javax.activation</groupId>
<artifactId>mail</artifactId>
<type>jar</type>
<exclusions>
<artifactId>activation</artifactId>
<groupId>javax.activation</groupId>
</exclusions>
<dependency/>
上面的配置指定該項目依賴 mail.jar,由于Maven的依賴具有傳遞性,因此會自動加載activation.jar進來。為了將activation.jar排除出去,即可在<exclusions>標簽中進行指定。
三 maven的基本配置
修改安裝目錄的conf/settings.xml 與 用戶目錄.m2/settings.xml。主要涉及兩個地方,一是鏡像mirror 的配置;另外一個是local repository的配置。
1 修改maven 的settings.xml中的鏡像配置,默認配置下載速度簡直是龜速,可以修改為aliyun鏡像。
<mirrors><!-- mirror<mirror><id>mirrorId</id><mirrorOf>repositoryId</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://my.repository.com/repo/path</url></mirror>--><mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror></mirrors>
2 local repository的配置
這個目錄可以使得maven所下載的jar包存儲在指定的目錄下,默認是存儲在用戶目錄下,這樣占據了C盤的空間,不太好。
<localRepository>D:\Program Files\maven-repository</localRepository>
3 使用注意事項
如果Jar包下載到本地之后下載一半沒有成功,需要刪除整個的repository的內容,然后重啟使用run as maven install下載。下載完成之后,需要使用maven update project進行更新。
四 maven的運行錯誤
1 報錯 :
Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:aspectj-maven-plugin:2.6.1:compile (execution: default, phase: compile)
官網解釋為這是一個 M2E_plugin_execution_not_covered 類型的錯誤。解決方法不止一個,這個方法來的比較快:
在plugins標簽外加上 <pluginManagement> 標簽即可。這種方法的最大弊端是需要修改文件,如果有多個項目則每一個項目的POM文件都需要進行修改,此外,還會影響版本管理。
另外一種較為直接徹底的方法是:在 Windows -> Preferences -> Maven -> LyfeCycleMapping中查看文件目錄E:/eclipse_new/.metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping-metadata.xml
實際上這個目錄下沒有這個文件,所以需要去拷貝一個模板文件來進行適當的修改。
接著,需要到eclipse的安裝目錄下的plugins下的org.eclipse.m2e.lifecyclemapping.defaults_xxxxxx.jar文件中找到該文件。
將其中的lifecycle-mapping-metadata.xml拷貝出來進行加工,加入以下xml內容:
<pluginExecution> <pluginExecutionFilter> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <versionRange>[1.9,)</versionRange> <goals> <goal>compile</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action></pluginExecution>
這里的 [1.9,) 主要是因為POM中配置了1.9版本的插件。E:/eclipse_new/.metadata/.plugins/org.eclipse.m2e.core/這個目錄下的lifecycle-mapping-metadata.xml文件只是在初始化時會下載插件,下載完之后(保存在本地 maven repository 倉庫目錄中)就不會使用到這個文件了。
2 報錯:
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
原因:eclipse默認是運行在jre上的,但是maven插件需要使用jdk,因此需要在eclipse修改Installed JRES。
解決方法:【Window】-->【Prefrences】-->【Java】-->【Installed JREs】修改為jdk即可。
3 報錯
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
在官網中搜索nop,取得maven配置:
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.21</version>
<scope>test</scope>
</dependency>
結果就報錯了。
解決方法:
把 <scope>test</scope> 注釋掉就OK了。
五 利用maven添加和查看第三方框架源碼與文檔
1 先添加下載功能
默認情況下,Maven 只會選擇下載項目運行所必要的jar包,不會下載第三方框架所對應的源碼和文檔jar包。因此需要在Eclipse中對Maven進行設置。具體方法為:
在eclipse中進入windows -> preferences -> Maven 選項,然后查看右側 菜單來中 找到 Download Artifact Sources 選項勾選;如果想要下載JavaDOC 則勾選 DownloadArtifact JavaDOC 選項。點擊apply 并確定。設置完成之后,就可以在maven install時下載所需的第三方框架源碼包和文檔jar包。
2 在Eclipse中設置文件路徑
默認情況下,Eclipse不會綁定源碼和文檔的jar包路徑。因此,想要查看這些框架的源碼和注釋,還需設置這些jar包的文件路徑。具體方法為:
鼠標選中Eclipse 中 Maven 依賴的jar包(這里指的是你所想要看其源碼和注釋的目標jar包)。然后右鍵選擇 Properties,分別設置 Source Attachment 與 Java doc location 的 jar 包的絕對路徑即可。
AJDT插件的安裝
http://download.eclipse.org/tools/ajdt/45/dev/update
參考:
[1] http://www.cnblogs.com/wbyp/p/6381259.html
[2] http://blog.csdn.net/xxd851116/article/details/25197373
[3] http://www.bubuko.com/infodetail-743907.html
作者:David-Zhong
來源鏈接:https://www.cnblogs.com/ioveNature/p/7172305.html