idea中打开项目时import project和open区别详解

 更新时间:2023年06月19日 09:41:05   作者:gitcat熊  
本文主要介绍了idea中打开项目时import project和open区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

写本文时用的还是idea2019,新版本的idea(2020及以上)已经没有import project选项了,只有open选项。

如下为idea 2020.3.4版本启动页面,可以看到没有import project选项了。

对于idea中如下图所示的import和open project的区别,一开始不明白怎么回事,网上看了很多说法,也都是在文字描述,今天实践了一下二者的区别。

创建测试目录

首先我们在test目录下手动创建一个testIdea1目录进行第一次测试,testIdea1目录结构符合maven目录结构,但是没有被任何ide打开过,其中的pom.xml中也没什么内容,就只有简单的groupId, artifactId等信息。

用idea open方式打开

接下来我们点击idea启动界面的open方式来打开这个目录,可以看到testIdea1图标右下角有一下黑色小框,个人猜测这是idea识别出了这是个maven项目,所以标示了出来,选择testIdea1目录后点“OK”,打开项目。

打开项目后,可以看到,pom.xml文件的图标被标识为了蓝色小m图标,表明idea识别了这是maven项目(如果是普通的xml文件,不会是这个图标,后面我们会看到对比),并且右侧出现了Maven选项卡。如果idea没有识别出这是maven项目,是不会出现Maven选项卡的,这也是为什么很多人说找不到maven选项卡,因为idea没有把你这个项目当成maven项目。

我们再回去看testIdea1目录,这时目录下生成了.idea文件夹和testIdea1.iml,也就是说,打开过一次后,idea就把这个项目转为了idea管理的maven项目。

用idea import project方式打开

按照上面的方式,我们再手动创建一个testIdea2的maven项目。

这一次,我们用idea启动界面的Import Project打开,如下图所示。

点“OK”后不会直接打开,让我们选择以什么方式打开,其实就是告诉idea我这个项目是什么形式的项目,这里我们选择Maven项目,因为我们的就是Maven项目。

选好后点Finish,可以看到生成的结果和Open没有区别,都是识别为了一个Maven项目。

这里大家可以实验一下,如果上一步我们选择Gradle或其他非Maven形式来打开这个项目,可以看到idea没什么反应,又回到启动界面,因为我们明明是Maven项目,你却告诉idea用Gradle等其他方式打开,idea不认识,所以也就没法打开。

通过以上过程可以发现,对于一个普通的Maven项目,用open和import project其实没什么区别,只是imort project要多一步,选择一下imort的形式,告诉idea这是个maven项目。

用idea open方式打开文件夹下的多个项目

如果用eclipse打开一个有多个maven项目的文件夹(如上面测试用的test文件下的testIdea1和testIdea2两个项目),eclipse会自动识别到每个文件夹下的pom.xml文件,然后把所有的maven项目都导入进来,并自动识别为maven项目,那么用idea是不是这样的呢,我们来测试一下。

首先我们把刚才测试用的两个项目下的.idea文件夹和xxx.iml文件删除,这样它们又回到为两个普通maven项目。

然后我们用idea的open方式打开,这次我们直接选择test文件夹打开。

打开后结果如下图,可以看到,虽然被成功打开了,但是idea并没有将每个文件夹下的maven项目识别为maven项目。这种情况下,你在pom.xml中添加dependency也没用,idea是不会导入包的。

这种情况下如果想让上面两个项目变成maven项目,可以按如下步骤分别将两个项目再导入一次,就可以了。

重新导入一次(其实是两次,因为2个项目要分别导入一次)后的结果。

经过以上步骤我们再看一个我们的文件夹,test下多了个.idea文件夹,每个项目下多了个xxx.iml

用idea Import Project的方式的方式打开多个项目

还是刚才两个项目,我们还是先删除.idea文件夹和xxx.iml(经测试,删不删结果都一样,但为了看着不那么乱,我还是删了),回到如下的目录结构。

这次我们选择Import Project,依然选用Maven方式导入,然后就会发现,idea又回到了启动界面。。。也就是没有导入成功,原因是我们导入的是maven项目,但是test文件夹下没有pom.xml,idea不认识,所以导入失败。

总结

对于单个maven项目(目录下有pom.xml),idea open和import project没什么区别。

对于一个文件下的有多个maven项目想要同时导入,只能用open方式,import project方式打不开,但是用open方式也仅仅是打开而已,idea并不能识别为maven项目,还要通过File -> New -> Module from Existine Sources方式再次以maven方式把项目重新导入一次,才能成为maven项目。从这一点上来看,idea不如eclipse那么方便。

到此这篇关于idea中打开项目时import project和open区别详解的文章就介绍到这了,更多相关idea import project和open内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot编写拦截器教程实例解析

    Spring Boot编写拦截器教程实例解析

    这篇文章主要介绍了Spring Boot编写拦截器教程实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java Mybatis查询数据库举例详解

    Java Mybatis查询数据库举例详解

    这篇文章主要给大家介绍了关于Java Mybatis查询数据库的相关资料,在MyBatis中可以使用递归查询实现对数据库中树形结构数据的查询,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Java中缀表达式转后缀表达式流程详解

    Java中缀表达式转后缀表达式流程详解

    中缀表达式是一个通用的算术或逻辑公式表示方法。,中缀表达式不容易被计算机解析,但仍被许多程序语言使用,因为它符合人们的普遍用法。本文介绍了实现中缀表达式的方法,需要的可以参考一下
    2022-09-09
  • Log4j2 重大漏洞编译好的log4j-2.15.0.jar包下载(替换过程)

    Log4j2 重大漏洞编译好的log4j-2.15.0.jar包下载(替换过程)

    Apache 开源项目 Log4j 的远程代码执行漏洞细节被公开,由于 Log4j 的广泛使用,该漏洞一旦被攻击者利用会造成严重危害,下面小编给大家带来了Log4j2 重大漏洞编译好的log4j-2.15.0.jar包下载,感兴趣的朋友一起看看吧
    2021-12-12
  • Java单线程ThreadLocal串值问题解决方案

    Java单线程ThreadLocal串值问题解决方案

    这篇文章主要介绍了Java单线程ThreadLocal串值问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • SpringCloud Gateway中GatewayFilterChain执行流程详解

    SpringCloud Gateway中GatewayFilterChain执行流程详解

    Spring Cloud Gateway旨在为微服务架构提供一种简单有效的、统一的 API 路由管理方式。Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关,它不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全、监控/埋点和限流等
    2022-10-10
  • Java中StringBuilder类的介绍与常用方法

    Java中StringBuilder类的介绍与常用方法

    StringBuilder是一个可变的字符串的操作类,我们可以把它看成是一个对象容器,下面这篇文章主要给大家介绍了关于Java中StringBuilder类的介绍与常用方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Hibernate持久化对象生命周期原理解析

    Hibernate持久化对象生命周期原理解析

    这篇文章主要介绍了Hibernate持久化对象生命周期原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 简单了解Java编程中对异常处理的运用

    简单了解Java编程中对异常处理的运用

    这篇文章主要简单介绍了Java编程中对异常处理的运用,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • 基于FeignException$InternalServerError的解决方案

    基于FeignException$InternalServerError的解决方案

    这篇文章主要介绍了FeignException$InternalServerError的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06

最新评论