以前的以前,聽說過maven,也有幸安裝過,沒怎么用過,都是按照網上別人的記錄照着做的,感覺好沒有意思,現在我想自己弄清楚一些事情。一起來源於配置文件,和在網上多搜索多看,多實踐。
我用的包是這個apache-maven-3.0.4-bin.zip
我的操作系統是win10.
下面是我覺得比較重要的幾個點:
- maven依賴的環境變量
- maven自身需要設置的環境變量
- 如何設置本地倉庫
- 如何指定遠程的倉庫
- 如何手動添加包
maven依賴的環境變量:
在腳本mvn.bat中有如下描述:
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
如果系統有JAVA_HOME環境變量就只需要把 mvn.bat所在的目錄添加到PATH變量就可以了。然后在cmd中輸入mvn - v就可以了:
當然完全可以在這個腳本的開頭設置自己想用的JDK版本,比如我在mvn.bat文件開頭設置:
然后重新打開cmd,再次執行mvn -v 效果如下:
可以看到兩次的jdk版本不一樣。
也就是說maven依賴的環境變量是JAVA_HOME
maven自身需要設置的環境變量:
就像JAVA_HOME之於java,M2_HOME指定了maven的安裝位置。JAVA_HOME是個那些需要java環境的程序需要使用的。同樣M2_HOME也是為別的程序服務,在之前我是用的idea10在構建maven項目時候,明明安裝了maven(只是在PATH添加了mvn.bat所在的目錄)卻又提示沒有設置M2_HOME。
目前我所知道的是maven自身所需要設置的是M2_HOME
如何設置本地倉庫:
在maven安裝目錄下面的conf目錄里面有配置文件settings.xml,在里面可以看到如下注釋:
也就是說默認情況下當前用戶目錄下的.m2/repository目錄,但是隨着maven的使用,在網上下載的jar包會占用很多的空間,最好的辦法還是把本地倉庫設置在別的盤符下,而不是在C盤下。
# 我的E盤還有點空間。。。
<localRepository>E:\.m2\repository</localRepository>
如何指定遠程的倉庫:
-
通過在settings.xml文件添加相關信息
按照被注釋掉的內容添加相關信息就可以了。 -
通過在項目的pom.xml文件中添加遠程倉庫的信息
<project ...>
<repositories>
<repository>
<id>java.net</id>
<url>https://maven.java.net/content/repositories/public/</url>
</repository>
</repositories>
</project>
如何手動添加包
Failed to execute goal on project chapter1: Could not resolve dependencies for project com.smart:chapter1:war:3.1-SNAPSHOT: The following artifacts could not be resolved: org.apache.commons:com.springsource.org.apache.commons.logging:jar:1.1.1, fakepath:com.springsource.net.sf.cglib:jar:2.1.3: Could not find artifact org.apache.commons:com.springsource.org.apache.commons.logging:jar:1.1.1 in central (http://repo.maven.apache.org/maven2) -> [Help 1]
[ERROR]
有時候在網上down的一個別人的demo但是發現pom中指定的組件通過maven取不到了,此時可以從網上手動下載該組件,然后手動的把這個組件添加到本地倉庫:
到當前組件所在的目錄:
# 先安裝錯誤提示找出缺少的jar包(com.springsource.org.apache.commons.logging-1.1.1.jar),然后定位到pom文件的dependency,找到jar包的詳細信息:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>com.springsource.org.apache.commons.logging</artifactId>
<version>${apache.commons.version}</version>
</dependency>
# 再執行如下命令,對應位置替換即可
mvn install:install-file -Dfile=com.springsource.org.apache.commons.logging-1.1.1.jar -DgroupId=org.apache.commons -DartifactId=com.springsource.org.apache.commons.logging -Dversion=1.1.1 -Dpackaging=jar
手動安裝jar到maven本地倉庫的截圖: