坑爹的Maven
之前没用过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的更多相关文章
- eclipse Maven 使用记录 ------ 建立app项目
maven 项目构建工具 , 如今已逐渐取代ant的笨拙配置方式 ,使项目管理更加简单,规范,结构更加清晰,这里记录跟eclipse集成的一些步骤 1.从apache maven项目下下载maven ...
- 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 ...
- 【maven】maven各种奇葩问题
问题1:Could not calculate build plan: Plugin org.apache... 不能成功创建maven项目 解决方法1: http://repo1.maven.org ...
- ssh框架整合---- spring 4.0 + struts 2.3.16 + maven ss整合超简单实例
一 . 需求 学了这么久的ssh,一直都是别人整合好的框架去写代码,自己实际动手时才发现框架配置真是很坑爹,一不小心就踏错,真是纸上得来终觉浅! 本文将记录整合struts + spring的过程 , ...
- Idea maven tomcat 配置热更新 以及 maven jar依赖
看了视频 实在忍不住上了idea的贼船 不过这玩意确实有点坑爹,因为用的人少,所以很多配置是有问题的 例如maven配置tomcat热更新 以及tomcat的maven配置 我这里放几张图作为备用 配 ...
- 开发环境配置(netbeans+ant迁移到eclipse+maven)
新公司入职,接手一个离职人员的项目,拿到的源码是以一个压缩包,用netbeans开发,ant管理:前端:jsp+extjs,后端:springmvc+hibernate+activiti+spring ...
- 构建一个maven聚合类型的横向可扩展项目
那个时候初入java这个大家庭,学习的方向很乱.毕业后,在公司磨练了一年,总想着是该交一份答卷了,可能成绩不会很好,但求及格!那么考试题目呢,我计划搭建一个横向可扩展的项目,可以在平台自扩展各种子项目 ...
- gradle上传本地文件到远程maven库(nexus服务器)
自定义aar-upload.gradle文件 artifacts { archives file('./build/outputs/aar/Lib_ads-baidu-debug.aar') } up ...
- SVN导入maven项目
在项目中,曾今遇到过这种问题,用eclipse将项目从svn下载下来,maven去自动下载jar包怎么都报错,本来时间就很紧张, 还特么遇到这种坑爹的问题.不过,整了我一天,最后终于在同事的帮助下,搞 ...
随机推荐
- 【Python】引用计数
一.概述 要保持追踪内存中的对象,Python使用了引用计数这一简单的技术. 二.引用计数的增减 2.1 增加引用计数 当对象被创建并(将其引用)赋值给变量时,该对象的引用计数被设置为1. 对象的引用 ...
- SMA、SMB、SMC封装的二极管
以常见的贴片肖特基二极管SS14 SS24 SS34为例,三种管子区别主要在电流上,有三种封装:SMA.SMB.SMC. 从成本和体积来说,优先选用最小尺寸的SMA/DO-214AC封装,其他封装一般 ...
- ELK+Kafka集群日志分析系统
ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...
- GDB调试汇编分析
GDB调试汇编分析 代码 本次实践我参照了许多先做了的同学的博客,有卢肖明,高其,张梓靖同学.代码借用的是卢肖明同学的代码进行调试运行. GCC编译 使用gcc -g gdbtest.c -o gdb ...
- jetty项目中静态文件不能修改问题
修改web.xml 在web.xml中加入如下代码: <servlet> <servlet-name>default</servlet-name> <serv ...
- HTML基础篇之知识点补充和拓展
<tbody>标签 <tbody>如果表格内容非常多的时候,如果加上这个标签它会让这个表格全部下载好才会显示.用在表格标签上面. 如果您使用 thead.tfoot 以及 tb ...
- js面向对象基础总结
js中如何定义一个类? 定义的function就是一个构造方法也就是说是定义了一个类:用这个方法可以new新对象出来. function Person(name, age){ this.name = ...
- JQM (功能栏、导航条)
在Mobile中导航条的基本结构: <div data-role="navbar"> ul>li>a </div> 其中含有“行(grid)”和 ...
- Javascript判断两个日期是否相等
大家一定遇到过这样的情况,有两个日期对象,然后需要判断他们是否相等. 例如: var date1 = new Date("2013-11-29"); var date2 = new ...
- CoreData教程
网上关于CoreData的教程能搜到不少,但很多都是点到即止,真正实用的部分都没有讲到,而基本不需要的地方又讲了太多,所以我打算根据我的使用情况写这么一篇实用教程.内容将包括:创建entity.创建r ...