我在学习springmvc的课程,想自己搭建一个springmvc的项目,使用maven来搭建工程,但是死活拉不下来spring-webmvc的依赖。百度查了很多的资料,也没有解决问题。折腾了我一下午+一晚上。最后还是自己发现了问题。
下载的jar包都是后缀带着lastUpdated的。
而且,我发现我新建的项目,是在电脑本地的maven仓库上新建spring-webmvc文件夹来存放下载的jar包,而不是复用原来已有的。很是奇怪,居然可以有同名的文件夹。
后来我在尝试install项目的时候,看到了报错的提示:
[ERROR] The project com.example:springmvc_demo:1.0-SNAPSHOT (D:\file\idea_project\springmvc_demo\pom.xml) has 1 error
[ERROR] 'dependencies.dependency.artifactId' for org.springframework:spring‐webmvc:jar with value 'spring‐webmvc' does not match a valid id pattern. @ line 13, column 25
这个错误提示,我猜想可能是artifactId拼写错了,我修改了一下artifactId名字,发现idea可以自动补全,然后我用自动补全填写了spring-webmvc,突然就好了!依赖拉下来了,而且是用的原来的spring-webmvc文件夹,而不是新建的那个。我把冗余的那个spring-webmvc文件夹删掉,发现也没问题。
而且我也仔细对比过之前的artifactId,我的拼写是完全正确的!真的是很奇怪的一个问题,我猜想这个是idea的一个bug,我是复制粘贴进来的spring-webmvc依赖标签,不自己手动拼写的<dependency>,可能会有区别。复制进来的可能不会触发去本地仓库寻找依赖,而是新建的文件夹来存放依赖。而重复文件夹,可能会导致拉不下来依赖。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
总结:pom文件的dependency标签,artifactId最好是自己手动拼写,复制粘贴的可能会有未知的bug,导致依赖拉不下来。我的idea是2018.3的版本,可能新版本已经修复了这个bug了吧。我就不去验证了,留给网友们验证吧,希望文章能帮到大家。