maven安装及与eclipse集成
2018-03-22 17:48 xiashengwang 阅读(214) 评论(0) 编辑 收藏 举报一、maven安装
1,下载地址:http://maven.apache.org/download.cgi
2,解压maven到:C:\Java\apache-maven-3.5.3,目录可以随意。
3,配置系统环境变量,M2_HOME是maven2版本以后的环境变量。
4,追加Path变量:%M2_HOME%\bin
5,验证环境变量配置
6,设置本地仓储
便于管理,在maven安装的同级目录新建文件夹C:\Java\m2\repository作为本地仓储。
修改C:\Java\apache-maven-3.5.3\conf\settings.xml文件 ,新增一行:
7,如果需要修改默认的中央仓储,需要进行下面的修改。我选择默认,所以省略这一步。
8,初始化本地仓储mvn help:system。
其实这一步不是必须的,只是为了验证maven能不能正常工作。这个命令是个帮助命令,意思是打印出所有Java系统变量。但是mvn运行help的时候需要用到help的plugin的jar包,还有help的相关文件,所以他就会自动的去下载这些内容到本地仓储。
再次执行这个命令的时候,你会发现它不会再去下载东西了,而是直接打印出结果。
本地仓储中就多了很多下载的jar包和其他内容,大小大概在10M左右。以后随着项目的运用文件会越来越多,要保证本地仓储选的磁盘有足够的空间。
二、eclipse配置maven
1,我们不用那个内置的maven,eclipse→windows→Preferences→Maven→Installations,添加Maven安装目录
2,将 C:\Java\apache-maven-3.5.3\conf\settings.xml 文件拷贝一份到 C:\Java\m2\repository下面作为用户配置文件,conf下面那个是全局配置文件。
然后做如下修改。
3,新建maven工程。
生成了一个下面的结构。
如果修改了pom.xml的内容,需要做下面这一步
编译的时候有有个警告。
原因是这个工程默认的jre是1.5的。解决办法:
打开pom.xml文件,在Properties中加入下面两句话,然后再执行上面的maven--update project
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
OK,版本已经正确了。
运行一下,看看结果。
Junit测试结果。
4,需要加载某一个包,可以通过双击pom.xml文件,然后在设计视图中,按下面的步骤,可以搜索。
5,eclipse下查看当前配置下maven Repositories信息。
window-->show view-->other-->maven-->maven repositories
6,要打包程序,执行maven install。
项目被打包到了这里
8,默认的远程仓库是国外的,速度可能会很慢,可以配置国内的镜像,方法如下:
这篇文章有详细解释,我直接转载:http://www.blogjava.net/fancydeepin/archive/2015/06/23/maven-mirror.html
镜像通常可以提供比远程中央仓库更好的服务,提升构件下载的速度。
在 settings.xml(%MAVEN_HOME%\conf\settings.xml)配置文件中找到 <mirrors> 节点,添加如下的配置:
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>mirrors repositories from central</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
</mirror>
</mirrors>
id:随意,唯一即可; name:随意,只是对镜像的一个描述; url:镜像的地址。
mirrorOf:当 mirrorOf 与仓库的 id 匹配时(maven 默认的远程中央仓库的 id 是 central),所有远程仓库的请求都转成对该镜像配置的
url 的请求。当一个仓库的 id 与多个镜像的 mirrorOf 同时匹配时,则优先选取与仓库 id 完全一致的镜像,如果没有,则按照镜像配置的先
后顺序选取第一个镜像作为服务的提供者。下面几个是常见的配置 mirrorOf 的用法:
<mirrorOf>*</mirrorOf> 匹配所有的远程仓库
<mirrorOf>repo1,repo2</mirrorOf> 匹配 id 为 repo1 和 repo2 的远程仓库(仓库之间使用 "," 隔开)
<mirrorOf>external:*</mirrorOf> 匹配除本地仓库之外的所有其他仓库
<mirrorOf>*,!repo1</mirrorOf> 匹配除 repo1 之外的所有其他仓库(使用 "!" 可将仓库从匹配中排除)
附收藏的几个镜像地址列表
http://maven.antelink.com/content/repositories/central
http://maven.tmatesoft.com/content/groups/public
http://mirrors.ibiblio.org/pub/mirrors/maven2
http://uk.maven.org/maven2
http://maven.aliyun.com/nexus/content/groups/public
9,如何搭建自己公司的maven代理仓储
目前没有需求,可以暂时参考:https://blog.csdn.net/zmx729618/article/details/51566987
10,maven的xml的配置说明
1)profile节点 http://www.cnblogs.com/lzxianren/p/maven-profile.html
2)修改默认的jdk版本
https://www.cnblogs.com/bianqi/p/6819074.html
https://blog.csdn.net/snail_spoor/article/details/53192114
三、其他常见问题
1,编译既存的maven项目,发现找不到依赖的jar包,但是本地仓储里面实际有。
把本地仓储的jar包目录备份到其他的地方,然后删除本地仓储的该jar包的目录。然后用下面的命令重新添加,这个命令是将第三方的jar包导入到了本地仓库。
mvn install:install-file -Dfile=C:\Java\xxxxx-1.0.0.0.0.0.0.jar -DgroupId=cn.com.mysoft -DartifactId=mysoft -Dversion=1.0.0.0.0.0.0 -Dpackaging=jar
这时会发现目录被重新生成,并且多出一个maven-metadata-local.xml文件。再到eclipse,发现可以正常编译了。
添加外部第三方jar包的方法,除了上面这种,还有其他的方式,可以参考下面这篇文章。
https://blog.csdn.net/pltuyuhong/article/details/50954017
其他参考:
http://maven.apache.org/guides/introduction/introduction-to-profiles.html(官网)
http://blog.csdn.net/zhf_2016cs/article/details/77479204
http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html#!comments