刚进公司,如果你拿到一个maven聚合工程,可能会发现导入工程后到处报红叉、感叹号。这些问题该如何解决呢?
这个首先得先了解公司的maven仓库环境了,可以先找同事了解一下是否配置了私服,这个沟通的事情详细大家都没问题。
对于刚使用maven的初学者,也经常会遇到一些比较奇葩的问题;比如本地仓库明明存在这个jar包,但是发现工程中还说这个jar包找不到,下面就给大家介绍几个常见的问题的解决办法:
阅读如下内容,需要对maven的仓库存储布局有一定的了解,得知道成百上千个jar包在本地仓库中是按照什么结构存储的。建议大家参考maven实战一书对布局的介绍;
问题:本地仓库没jar包,中央仓库也没有jar包,导致程序中jar包缺失
关于这个问题的解决办法颇多,主要有如下几种方案:
a、去百度找一个jar包,在cmd下通过如下命令手动编译到本地仓库(不懂maven坐标的请勿模仿)
mvn install:install-file -DgroupId=com.alibaba -DartifactId=druid -Dversion=1.1.10 -Dpackaging=jar -Dfile=druid-1.1.10.jar
备注:
mvn命令在maven主目录的bin目录下,mvn.cmd;所以要执行以上的命令,要么进入bin目录,要么把maven的bin目录加入环境变量
install:install-file 这是mvn的命令选项,照着写即可
-DgroupId=坐标信息的groupId,这个要根据实际情况修改,jar包的包名
-DartifactId=坐标信息的artifactId,这个要根据实际情况修改,jar包的项目名
-Dversion=1.1.10,这个要根据实际情况修改,jar包的版本
-Dpackaging=jar,一般安装到本地仓库的都是jar包,这个选项不需要修改
-Dfile=druid-1.1.10.jar,需要把哪个jar包安装到本地仓库,保证能此命令执行能找到这个文件即可
运行完成,去本地仓库查看是否生成了pom.xml和jar包;如果没成功,检查各个选项的设置
b、去一个速度较快的仓库去下载一个jar包和一个pom.xml文件丢到本地仓库中
推荐的仓库:这俩仓库有搜索功能,挺好用
http://maven.aliyun.com/mvn/view
假如我现在需要一个HttpClient的依赖包,可以打开以上任意一个网址,在搜索框中输入HttpClient,如下图
搜索结果如下图:这里只截取了两个结果,假设我需要commons-httpclient,name点击2.HttpClient
点击2.HttpClient看到如下详细信息,把页面往下拉;这里会有很多的版本供我们选择,找到需要的版本点击进入
点击3.1看到如下效果,可以直接点击pom(7KB)下载pom.xml,jar(297KB),下载完成直接丢到本地仓库目录下
update项目即可。
c、配置一个中央仓库覆盖默认的中央仓库(推荐使用)
修改中央仓库,在maven的主目录中找到conf/settings.xml,添加如下配置(推荐)
注意:不管配置哪个仓库作为中央仓库,记得把id改成central,因为在每个jar包所在的本地仓库目录中,存在一个文件,_remote.repositories,打开看到如下内容
看到最后一句话,叫central=,这里的central表示的是仓库的id,注意:这里如果处理不好,会导致明明本地仓库存在jar包,但是eclipse的pom.xml上还提示Missing