maven填坑记


以下源码来自鸟叔的Spring全家桶,github地址: SpringAll
遇到问题部分大部分为废话,单纯为了让自己记住遇到问题的具体情形,读者可直接跳过。

遇到的问题

导包不完整,结果就是
在这里插入图片描述
在这里插入图片描述
第一次遇到这种情况我是懵的,以为spring-kafka包中不包括这些包(黑人问号脸)
在这里插入图片描述
接下来开始骚操作了,既然里面没有,行行行,那我手动导包总可以吧(狗头)

进入https://mvnrepository.com,搜索kafka,中间省略几步版本选择的操作
在这里插入图片描述
添加依赖,然后reimport一下
在这里插入图片描述
在这里插入图片描述
没错了,结果发现没啥用,到repository下一看,路径为 D:\java\maven\repository\org\apache\kafka\kafka_2.12\2.3.0
在这里插入图片描述
好家伙,结果发现只有几百字节。。包丢失了,那行吧,手动下载
在这里插入图片描述
下载完了替换,不报红了,用同样的方法修改其他缺了的包,好不容易都不报红了,一运行,报错各种Class Not Found。

事后想一想,解决了明面上不报错的包,还有背后依赖的包呀。。。想到这,又顺势想到,那我怎么可能知道内部引用了哪些包,所以还是下好原来的包,那原来的包拉下来有问题?这时候突然想通了(别笑,在瞎忙的时候真就这么傻)。

点开Spring kafka的jar包一看,wtf?263字节
在这里插入图片描述
pom文件一打开,wtf??怎么身子都没有
在这里插入图片描述
正常的版本是这样的
在这里插入图片描述
此外还有各种依赖关系
在这里插入图片描述
难怪我IDEA里面,这个kafka的包连个三角号都没有
在这里插入图片描述
正常的情况应该是这样的
在这里插入图片描述
就是pom文件里,各种单纯只有<scope>compile</scope>类型的包都应该能显示出来(注意,有test标记的不显示和optional的可选,不一定显示),例如
在这里插入图片描述
在这里插入图片描述
所以遇到了没有三角号的,那么就要小心的,很可能跟我一样,maven的配置文件有问题。
在这里插入图片描述

解决方案

添加镜像源

打开maven的配置文件,路径为安装目录下的conf目录,例如D:\java\maven\apache-maven-3.6.0\conf,注意别以txt格式打开,不然可能会出现,你看到的情形是这样的
在这里插入图片描述
而实际是这样的(没错,多了一些神秘代码)
在这里插入图片描述
在mirror里面添加几个镜像源,参考
下面是几个常用的maven长仓库的镜像地址:
http://repo1.maven.org/maven2 (这个仓库最全,推荐使用,但有一点慢)
http://maven.apache.org/download.cgi
http://mvnrepository.com/ (这个仓库速度最快,国内有镜像服务器)

例如我的是:

<mirror>
   	<id>nexus-aliyun</id>
   	<mirrorOf>*</mirrorOf>
   	<name>Nexus aliyun</name>
   	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
   </mirror>

 <!-- 这个仓库速度最快,国内有镜像服务器 -->
   <mirror>
   	<id>mvnrepository</id>
   	<mirrorOf>*</mirrorOf>
   	<name>mvnrepository</name>
   	<url>http://mvnrepository.com/</url>
   </mirror>


 <!-- 这个仓库最全,推荐使用,但有一点慢 -->
   <mirror>
	<id>kousihao Maven</id>
	<mirrorOf>all repository mirror</mirrorOf>
	<name>*</name>
	<url>http://repo1.maven.org/maven2</url>
   </mirror>

当然名字是我自己起的,比较随便,建议能找到通用的就别自己起。

在cmd命令行中,执行mvn help:system,将远程镜像源的jar包拉取过来,如果报ERROR,那么可能是配置不对,例如有神秘代码。

在IDEA中重新导入

在导入之前,需要到repository中将对应的文件夹删除,否则是不会重新导入的。
例如
在这里插入图片描述
在这里插入图片描述
删除了之后,再reimport重新导入
在这里插入图片描述
在这里插入图片描述
呐,看到三角号出来就放心了。

总结

如果遇到一直循环解决不了的问题,那么可能就是方向错了,这时候要停下来,仔细想想,看看其他解决办法(致自己)。


版权声明:本文为kubiderenya原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。