idea中打開項目時import project和open區(qū)別詳解
寫本文時用的還是idea2019,新版本的idea(2020及以上)已經(jīng)沒有import project選項了,只有open選項。
如下為idea 2020.3.4版本啟動頁面,可以看到?jīng)]有import project選項了。

對于idea中如下圖所示的import和open project的區(qū)別,一開始不明白怎么回事,網(wǎng)上看了很多說法,也都是在文字描述,今天實踐了一下二者的區(qū)別。

創(chuàng)建測試目錄
首先我們在test目錄下手動創(chuàng)建一個testIdea1目錄進(jìn)行第一次測試,testIdea1目錄結(jié)構(gòu)符合maven目錄結(jié)構(gòu),但是沒有被任何ide打開過,其中的pom.xml中也沒什么內(nèi)容,就只有簡單的groupId, artifactId等信息。

用idea open方式打開
接下來我們點擊idea啟動界面的open方式來打開這個目錄,可以看到testIdea1圖標(biāo)右下角有一下黑色小框,個人猜測這是idea識別出了這是個maven項目,所以標(biāo)示了出來,選擇testIdea1目錄后點“OK”,打開項目。

打開項目后,可以看到,pom.xml文件的圖標(biāo)被標(biāo)識為了藍(lán)色小m圖標(biāo),表明idea識別了這是maven項目(如果是普通的xml文件,不會是這個圖標(biāo),后面我們會看到對比),并且右側(cè)出現(xiàn)了Maven選項卡。如果idea沒有識別出這是maven項目,是不會出現(xiàn)Maven選項卡的,這也是為什么很多人說找不到maven選項卡,因為idea沒有把你這個項目當(dāng)成maven項目。

我們再回去看testIdea1目錄,這時目錄下生成了.idea文件夾和testIdea1.iml,也就是說,打開過一次后,idea就把這個項目轉(zhuǎn)為了idea管理的maven項目。

用idea import project方式打開
按照上面的方式,我們再手動創(chuàng)建一個testIdea2的maven項目。

這一次,我們用idea啟動界面的Import Project打開,如下圖所示。

點“OK”后不會直接打開,讓我們選擇以什么方式打開,其實就是告訴idea我這個項目是什么形式的項目,這里我們選擇Maven項目,因為我們的就是Maven項目。

選好后點Finish,可以看到生成的結(jié)果和Open沒有區(qū)別,都是識別為了一個Maven項目。
這里大家可以實驗一下,如果上一步我們選擇Gradle或其他非Maven形式來打開這個項目,可以看到idea沒什么反應(yīng),又回到啟動界面,因為我們明明是Maven項目,你卻告訴idea用Gradle等其他方式打開,idea不認(rèn)識,所以也就沒法打開。


通過以上過程可以發(fā)現(xiàn),對于一個普通的Maven項目,用open和import project其實沒什么區(qū)別,只是imort project要多一步,選擇一下imort的形式,告訴idea這是個maven項目。
用idea open方式打開文件夾下的多個項目
如果用eclipse打開一個有多個maven項目的文件夾(如上面測試用的test文件下的testIdea1和testIdea2兩個項目),eclipse會自動識別到每個文件夾下的pom.xml文件,然后把所有的maven項目都導(dǎo)入進(jìn)來,并自動識別為maven項目,那么用idea是不是這樣的呢,我們來測試一下。
首先我們把剛才測試用的兩個項目下的.idea文件夾和xxx.iml文件刪除,這樣它們又回到為兩個普通maven項目。

然后我們用idea的open方式打開,這次我們直接選擇test文件夾打開。

打開后結(jié)果如下圖,可以看到,雖然被成功打開了,但是idea并沒有將每個文件夾下的maven項目識別為maven項目。這種情況下,你在pom.xml中添加dependency也沒用,idea是不會導(dǎo)入包的。

這種情況下如果想讓上面兩個項目變成maven項目,可以按如下步驟分別將兩個項目再導(dǎo)入一次,就可以了。

重新導(dǎo)入一次(其實是兩次,因為2個項目要分別導(dǎo)入一次)后的結(jié)果。

經(jīng)過以上步驟我們再看一個我們的文件夾,test下多了個.idea文件夾,每個項目下多了個xxx.iml

用idea Import Project的方式的方式打開多個項目
還是剛才兩個項目,我們還是先刪除.idea文件夾和xxx.iml(經(jīng)測試,刪不刪結(jié)果都一樣,但為了看著不那么亂,我還是刪了),回到如下的目錄結(jié)構(gòu)。

這次我們選擇Import Project,依然選用Maven方式導(dǎo)入,然后就會發(fā)現(xiàn),idea又回到了啟動界面。。。也就是沒有導(dǎo)入成功,原因是我們導(dǎo)入的是maven項目,但是test文件夾下沒有pom.xml,idea不認(rèn)識,所以導(dǎo)入失敗。

總結(jié)
對于單個maven項目(目錄下有pom.xml),idea open和import project沒什么區(qū)別。
對于一個文件下的有多個maven項目想要同時導(dǎo)入,只能用open方式,import project方式打不開,但是用open方式也僅僅是打開而已,idea并不能識別為maven項目,還要通過File -> New -> Module from Existine Sources方式再次以maven方式把項目重新導(dǎo)入一次,才能成為maven項目。從這一點上來看,idea不如eclipse那么方便。
到此這篇關(guān)于idea中打開項目時import project和open區(qū)別詳解的文章就介紹到這了,更多相關(guān)idea import project和open內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- IDEA 2019.2.2配置Maven3.6.2打開Maven項目出現(xiàn) Unable to import Maven project的問題
- IDEA2019.2.2配置Maven3.6.2打開出現(xiàn)Unable to import Maven project
- Intellij IDEA 與maven 版本不符 Unable to import maven project See logs for details: No implementation for org.apache.maven.model.path.PathTranslator was bound
- IDEA配置maven環(huán)境的詳細(xì)教程(Unable to import maven project報錯問題的解決)
- IDEA 重新導(dǎo)入依賴maven 命令 reimport的方法
- IDEA自動清理類中未使用的import包的操作方法
相關(guān)文章
mybatis類型轉(zhuǎn)換器如何實現(xiàn)數(shù)據(jù)加解密
這篇文章主要介紹了mybatis類型轉(zhuǎn)換器如何實現(xiàn)數(shù)據(jù)加解密,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringBoot+Redis實現(xiàn)分布式緩存的方法步驟
在高并發(fā)的分布式的系統(tǒng)中,緩存是提升系統(tǒng)性能的重要手段,本文主要介紹了SpringBoot+Redis實現(xiàn)分布式緩存的方法步驟,具有一定的參考價值,感興趣的可以了解一下2024-07-07
Java基于命令模式實現(xiàn)郵局發(fā)信功能詳解
這篇文章主要介紹了Java基于命令模式實現(xiàn)郵局發(fā)信功能,較為詳細(xì)的分析了命令行模式的概念、原理并結(jié)合實例形式分析了Java使用命令行模式實現(xiàn)郵局發(fā)信功能的相關(guān)操作技巧與注意事項,需要的朋友可以參考下2018-04-04
Java實現(xiàn)Jar文件的遍歷復(fù)制與文件追加
這篇文章主要為大家詳細(xì)介紹了如何利用Java實現(xiàn)Jar文件的遍歷復(fù)制與文件追加功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
Spring超詳細(xì)講解創(chuàng)建BeanDefinition流程
Spring在初始化過程中,將xml中定義的對象解析到了BeanDefinition對象中,我們有必要了解一下BeanDefinition的內(nèi)部結(jié)構(gòu),有助于我們理解Spring的初始化流程2022-06-06
Java+OpenCV調(diào)用攝像頭實現(xiàn)拍照功能
隨著我們對環(huán)境、Mat基本使用越來越熟練、Java Swing也逐步熟悉了起來。本文將通過OpenCV驅(qū)動攝像頭實現(xiàn)識臉和拍照功能,需要的可以參考一下2022-03-03
Java中LocalDate日期格式轉(zhuǎn)換(使用系統(tǒng)時區(qū))
本文主要介紹了Java中LocalDate日期格式轉(zhuǎn)換(使用系統(tǒng)時區(qū)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2007-02-02

