之前没用过Maven,最近在研究Curator的时候,导入别人的工程,但是没有相应的包,需使用Maven解决依赖。于是各种折腾,最后虽然解决了,但中间的坑还不少。尽管网上也有相应的安装教程,但很多都是语焉不详,模棱两可,最后还是决定自己整理一下。

一,下载Maven并配置相关的环境变量

下载地址如下:

http://maven.apache.org/download.cgi#

解压,设置环境变量。主要设置两个:MAVEN_HOME和PATH。以我本机的设置为例。

MAVEN_HOME:E:\apache-maven-3.3.9

PATH:在PATH路径后面添加;%MAVEN_HOME%\bin。

在DOS窗口执行mvn -v,看是否有输出。正常输出如下:

注意:倘若没有输出,可能需要重启电脑,让环境变量生效。

二、设置Maven的配置文件settings.xml。

该文件在conf目录下。

有两处需要修改:

1. Maven的默认文件保存路径

  <!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->

Maven默认文件保存路径为${user.home}/.m2/repository,${user.home}指的是当前用户的家目录

在这里,我修改为本机的E:\Maven目录。

  <!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>E:\Maven</localRepository>

2. 修改Maven的镜像源

在这里,推荐使用开源中国的镜像源

mirrors部分修改如下:

    <mirrors>
<!-- mirror | Specifies a repository mirror site to use instead of a given
repository. The repository that | this mirror serves has an ID that matches
the mirrorOf element of this mirror. IDs are used | for inheritance and direct
lookup purposes, and must be unique across the set of mirrors. | -->
<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexus osc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror> </mirrors>

关于其它方面的设置,可参考“开源中国Maven 库使用帮助”

http://maven.oschina.net/help.html

它里面有现成的settings.xml,只需修改Maven默认文件保存路径即可。

三、安装Eclipse Maven插件

网上普遍流行着两种安装方式,一种是在线安装,一种是离线安装。

离线安装可参考:http://blog.csdn.net/guanning0109/article/details/26069277

eclipse-maven3-plugin.7z的下载地址为:http://download.csdn.net/detail/bluerebel/7407455

我首选尝试的是离线安装,可惜的是,重启Eclipse后,“Preferences”里面并没有出现Maven的插件。

最后实属无奈,采用了在线安装,才发现,在线安装还是蛮简单的,没有上述博客中提到的各种不足。

在线安装Maven插件

点击Help下面的Install New Software,地址输入:http://m2eclipse.sonatype.org/sites/m2e/,一路Next,有License选择Accept,然后等待安装,并重启Eclipse。

具体可参考:http://jingyan.baidu.com/article/e6c8503c1d04d3e54f1a1807.html

上述参考文档中还少了一步,即重启Eclipse后,需设置Maven插件和之前下载的Maven软件进行关联。在Window下的Preferences里面设置。

经过上述的安装,Eclipse Maven插件安装完毕~

这样就可以在线解决Maven依赖问题了。

总结:

回过头来看,整个过程还是蛮简单的,主要坑在两个地方:

一、刚开始的时候,使用的是官方默认的镜像源,各种坑啊,下载了半天,只下载了一个junit,反复执行“Update Dependencies”,都会报如下错误:

解决方法:修改Maven的镜像源。

实践证明,更改完Maven的镜像源后,下载就顺畅了。

二、Maven在下载过程中,可能已经下载过,但是下载不成功,或者之前已经创建过目录。这时候,再刷pom.xml文件依旧会报错的,如下所示:

虽然下载很顺畅了,但是有几个包还是下载不起来。

解决方法:删除对应的目录,重新刷一下pom.xm

坑爹的Maven的更多相关文章

  1. eclipse Maven 使用记录 ------ 建立app项目

    maven 项目构建工具 , 如今已逐渐取代ant的笨拙配置方式 ,使项目管理更加简单,规范,结构更加清晰,这里记录跟eclipse集成的一些步骤  1.从apache maven项目下下载maven ...

  2. mybatis - maven - eclipse 坑爹问题: No suitable driver found for http://maven.apache.org

    坑爹的问题,调查了1天 一直以为是驱动问题,根源却在url上:No suitable driver found for http://maven.apache.org 根源: 1.在jdbc.prop ...

  3. 【maven】maven各种奇葩问题

    问题1:Could not calculate build plan: Plugin org.apache... 不能成功创建maven项目 解决方法1: http://repo1.maven.org ...

  4. ssh框架整合---- spring 4.0 + struts 2.3.16 + maven ss整合超简单实例

    一 . 需求 学了这么久的ssh,一直都是别人整合好的框架去写代码,自己实际动手时才发现框架配置真是很坑爹,一不小心就踏错,真是纸上得来终觉浅! 本文将记录整合struts + spring的过程 , ...

  5. Idea maven tomcat 配置热更新 以及 maven jar依赖

    看了视频 实在忍不住上了idea的贼船 不过这玩意确实有点坑爹,因为用的人少,所以很多配置是有问题的 例如maven配置tomcat热更新 以及tomcat的maven配置 我这里放几张图作为备用 配 ...

  6. 开发环境配置(netbeans+ant迁移到eclipse+maven)

    新公司入职,接手一个离职人员的项目,拿到的源码是以一个压缩包,用netbeans开发,ant管理:前端:jsp+extjs,后端:springmvc+hibernate+activiti+spring ...

  7. 构建一个maven聚合类型的横向可扩展项目

    那个时候初入java这个大家庭,学习的方向很乱.毕业后,在公司磨练了一年,总想着是该交一份答卷了,可能成绩不会很好,但求及格!那么考试题目呢,我计划搭建一个横向可扩展的项目,可以在平台自扩展各种子项目 ...

  8. gradle上传本地文件到远程maven库(nexus服务器)

    自定义aar-upload.gradle文件 artifacts { archives file('./build/outputs/aar/Lib_ads-baidu-debug.aar') } up ...

  9. SVN导入maven项目

    在项目中,曾今遇到过这种问题,用eclipse将项目从svn下载下来,maven去自动下载jar包怎么都报错,本来时间就很紧张, 还特么遇到这种坑爹的问题.不过,整了我一天,最后终于在同事的帮助下,搞 ...

随机推荐

  1. VS调式显示问题

    调式时,发现与以前的显示不太一样,虽然也能看到结果,但不是很方便,后来网上查找到与VS中的一个文件被修改有关. 找个别人安装过的VS2005,替换Common7\Packages\Debugger\a ...

  2. python 中使用 global 引发了莫名其妙的问题

    哪里出问题了 python 中,使用 global 会将全局变量设为本函数可用.同时,在函数内部访问变量会先本地再全局. 在嵌套函数中,使用 global 会产生不合常理的行为. 上代码: In [9 ...

  3. jquery/zepto 圣诞节雪花飞扬

    下载地址: http://www.html5tricks.com/jquery-html5-christ-snow.html 演示地址: http://www.html5tricks.com/jque ...

  4. C#如何测试代码运行时间

    1.System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 // 需要测试 ...

  5. 小知识 安卓线程和ui

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  6. 如何识别一个字符串是否Json格式

    前言: 距离上一篇文章,又过去一个多月了,近些时间,工作依旧很忙碌,除了管理方面的事,代码方面主要折腾三个事: 1:开发框架(一整套基于配置型的开发体系框架) 2:CYQ.Data 数据层框架(持续的 ...

  7. [Xamarin] 使用Webview 來做APP (转帖)

    有時候,企業要求的沒有這麼多,他原本可能官方網站就已經有支援Mobile Web Design 他只需要原封不動的開發一個APP 也或是,他只是要型錄型,或是問卷調查的型的APP,這時候透過類似像if ...

  8. EF遇到的一些问题

    环境:EntityFramework 版本号:4.1.0.0 问题一:“数据读取器与指定的“.......”不兼容.某个类型为“...”的成员在同名的数据读取器中没有对应的列.”. 使用方式:rep. ...

  9. 剑指Offer面试题:29.丑数

    一.题目:丑数 题目:我们把只包含因子2.3和5的数称作丑数(Ugly Number).求按从小到大的顺序的第1500个丑数.例如6.8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做第一个 ...

  10. SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因

    原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...