maven安装和使用前的几个点
以前的以前,听说过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本地仓库的截图: