今天从github上拉取了一个开源项目,但是maven pom.xml报红;尝试过很多种方案,都没有生效 最后一种解决了我的问题;
方案一:(最常见,但一般没啥用)
reimport maven
方案二:maven clean install
方案三:修改setting.xml
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
然后 在idea 的File ->Settings Maven中修改该工程所使用的setting.xml文件(但以上的阿里云镜像只会指向central库,因此可能会出现部分不在central库的依赖无法下载--可参照方法五解决)
方案四:修改pom.xml
在maven仓库中:http://mvnrepository.com/搜索相关的依赖
如com.github.penggle kaptcha依赖缺失 点击
点击 进入com.github.penggle kaptcha 然后选中对应版本的repository
将以下部分作为id 与uri 写入pom文件中
<repositories>
<repository>
<id>Central repository</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
</repositories>
方案五:将pom文件与jar包下载到maven仓库对应位置中
方案六:<dependencyManagement>依赖管理器--父子依赖问题
如果pom.xml中使用了<dependencyManagement>标签,dependencyManagement是对依赖的声明,判断其存在与否无非就是去本地仓库查找,若发现没有,则飘红报错 ;因此如果直接使用dependencyManagement标签可能尚未引入相关依赖,因此可以将这个标签先去除 再reimport maven,下载完依赖后再重新加上该标签
小知识:
①dependencyManagement埋只是声明依赖, 并不实现引入,因此子项目需要显示的声明需要用的依赖。
②如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。
方案七:查看maven版本
如果maven版本过低,可能会导致依赖引入失败