idea导入maven项目(别人的项目)中的坑

作为一个经常学习交流的人,或者工作需要,我们都或多或少会把别人写好的代码拷贝过来学习或编辑,大多数时候都是把整个项目拿过来;但是往往把代码拿到之后放在自己电脑用 idea 打开的时候就会出现 pom.xml 文件红线报错,然后倒入的包全部不能用,导致 java 文件引用的类报错,下面就是刚导入的 pom.xml 代码👇

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>maven_project</artifactId>
        <groupId>com.zmj</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>J3spring02</artifactId>
  
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <!--aop的实现有好几种,最好用就是aspectj-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.2</version>
        </dependency>
        <dependency>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>
</project>

然而我们看到的样子确实这样的:


idea导入项目报错2.png

别人都能跑的代码,为什么我拿来就报错了呢,电脑问题还是人品不好呢??

  • 首先我们明白,idea 中的 project 和 module 的区别,project 相当于是个工作空间,而 module 则是属于 project 以下的项目模块;
  • 然而我们拷贝的项目呢一般情况下是一个 module ,也就是我上面的代码;而 module 中是有一个标签的不知道大家发现没,没错就是那个报错的<parent>标签,这个标签的意思呢就是在创建 module 的时候,会用这个标签指定 module 的工作空间,parent 嘛父亲嘛,也就是说这个 module 属于某个空间项目;
  • 我们导入项目呢一般是新开一个窗口,新开一个窗口基本上就说明是一个 project ,project 本身就是一个父项目的存在,那这个时候 pom.xml 文件夹里面再有 parent 标签是不是不合适呢?没错不合适,所以就报错了嘛;
  • 那存在不合适我们把它消灭了(删除)是不是就好了呢,答案是 nonono ,因为任何project项目也好, module 项目也罢,都必须有一些标签的(不然就报错),其中必须有的就有 groupid,version 标签;所以在删除parent标签的同时还得給 pom.xml 文件加上这两个标签,groupid 可以自己命名,version 标签用默认的 1.0-SNAPSHOT 就好了;

修改后的 pom.xml 文件夹就如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <artifactId>J3spring02</artifactId>
    <groupId>com.bdqn.zxw</groupId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <!--aop的实现有好几种,最好用就是aspectj-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.2</version>
        </dependency>
        <dependency>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>
</project>

改完之后,刷新一下maven项目就好了


idea截图.png

好了本次分享就结束了,希望能够帮到大家,最开始不熟idea的时候在百度真的不好找,感觉像没有人遇到过这个问题一样。其实注意观察的话可以在报错的时候刷新 maven 项目下方的信息区有个地方显示错误的,但是不会弹出来让你知道,这就很emmmmmm...了,其实是个小问题,希望大家不会被困扰,拜拜。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容