文章目录
- 创建测试目录
- 使用 Open 方式打开
- 用 Import Project 方式打开
- 用 Open 方式打开文件夹下的多个项目
- 用 Import Project 的方式打开多个项目
- 总结
对于 IDEA 中如下图所示的 Import Project 和 Open Project 的区别,一开始不明白怎么回事,网上看了很多说法,也都是在文字描述,今天实践了一下二者的区别。
创建测试目录
首先我们在 test 目录下手动创建一个 testIdea1 目录进行第一次测试,testIdea1 目录结构符合 Maven 目录结构,但是没有被任何 IDEA 打开过,其中的 pom.xml 中也没什么内容,就只有简单的 groupId, artifactId 等信息。
使用 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 把 testIdea1 转为了 IDEA 管理的 Maven 项目。
用 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 其实没什么区别,只是 Import Project 要多一步,选择一下 Import 的形式,告诉 IDEA 这是个 Maven 项目。
用 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
用 Import Project 的方式打开多个项目
还是刚才两个项目,我们还是先删除 .idea
文件夹和 xxx.iml(经测试,删不删结果都一样,但为了看着不那么乱,我还是删了),回到如下的目录结构。
这次我们选择 Import Project,依然选用 Maven 方式导入,然后就会发现,IDEA 又回到了启动界面。。。也就是没有导入成功,原因是我们导入的是 Maven 项目,但是 test 文件夹下没有 pom.xml,IDEA 不认识,所以导入失败。
总结
对于单个 Maven 项目(目录下有 pom.xml),Open 和 Import Project 没什么区别。
对于一个文件下的有多个 Maven 项目想要同时导入,只能用 Open 方式,Import Project 方式打不开,但是用 Open 方式也仅仅是打开而已,IDEA 并不能识别为 Maven 项目,还要通过File -> New -> Module from Existing Sources方式再次以 Maven 方式把项目重新导入一次,才能成为 Maven 项目。从这一点上来看,IDEA 不如 Eclipse 那么方便。