雁过请留痕...
代码改变世界

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> 节点,添加如下的配置: 

<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

 

Maven 项目构建基础(推荐) https://zhuanlan.zhihu.com/p/28371336