作为一个经常学习交流的人,或者工作需要,我们都或多或少会把别人写好的代码拷贝过来学习或编辑,大多数时候都是把整个项目拿过来;但是往往把代码拿到之后放在自己电脑用 idea 打开的时候就会出现 pom.xml 文件红线报错,然后倒入的包全部不能用,导致 java 文件引用的类报错,下面就是刚导入的 pom.xml 代码
maven_project
com.zmj
1.0-SNAPSHOT
4.0.0
J3spring02
org.springframework
spring-context
5.1.5.RELEASE
log4j
log4j
1.2.12
org.aspectj
aspectjweaver
1.9.2
aopalliance
aopalliance
1.0
然而我们看到的样子确实这样的:
别人都能跑的代码,为什么我拿来就报错了呢,电脑问题还是人品不好呢??
- 首先我们明白,idea 中的 project 和 module 的区别,project 相当于是个工作空间,而 module 则是属于 project 以下的项目模块;
- 然而我们拷贝的项目呢一般情况下是一个 module ,也就是我上面的代码;而 module 中是有一个标签的不知道大家发现没,没错就是那个报错的
标签,这个标签的意思呢就是在创建 module 的时候,会用这个标签指定 module 的工作空间,parent 嘛父亲嘛,也就是说这个 module 属于某个空间项目; - 我们导入项目呢一般是新开一个窗口,新开一个窗口基本上就说明是一个 project ,project 本身就是一个父项目的存在,那这个时候 pom.xml 文件夹里面再有 parent 标签是不是不合适呢?没错不合适,所以就报错了嘛;
- 那存在不合适我们把它消灭了(删除)是不是就好了呢,答案是 nonono ,因为任何project项目也好, module 项目也罢,都必须有一些标签的(不然就报错),其中必须有的就有 groupid,version 标签;所以在删除parent标签的同时还得給 pom.xml 文件加上这两个标签,groupid 可以自己命名,version 标签用默认的 1.0-SNAPSHOT 就好了;
修改后的 pom.xml 文件夹就如下:
4.0.0
J3spring02
com.bdqn.zxw
1.0-SNAPSHOT
org.springframework
spring-context
5.1.5.RELEASE
log4j
log4j
1.2.12
org.aspectj
aspectjweaver
1.9.2
aopalliance
aopalliance
1.0
改完之后,刷新一下maven项目就好了
好了本次分享就结束了,希望能够帮到大家,最开始不熟idea的时候在百度真的不好找,感觉像没有人遇到过这个问题一样。其实注意观察的话可以在报错的时候刷新 maven 项目下方的信息区有个地方显示错误的,但是不会弹出来让你知道,这就很emmmmmm...了,其实是个小问题,希望大家不会被困扰,拜拜。