IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)
文章目錄
- IDEA 如何獲取項目的模塊數據
- 從項目源中選擇模塊加入當前項目中
- 如何移除項目中的模塊
- 方式一,選擇模塊的根目錄(Content Root),鼠標右鍵 Remove
- 方式二,打開【項目結構】窗口,在模塊列表中選中模塊,點擊上方的減號(“-”)來移除項目
- 從項目源選擇沒有源碼文件的模塊加入到項目中(有問題)
- 如何導入沒有源代碼根目錄的模塊(非Java模塊)
- 關于模塊的配置文件
IDEA 如何獲取項目的模塊數據
這里要特別理解一個問題,硬盤上的項目文件必須在 IDEA 的配置文件中,IDEA 才能識別這個文件,而通過 IDEA 添加本地文件(例如添加項目或者添加模塊),其實就是把文件的相關路徑和屬性信息寫入到 IDEA 的配置文件中,IDEA 在開啟時會去讀取相關的配置文件,從而在相關的功能界面上顯示該文件的有關信息。
把模塊從當前項目中移除(remove),就是把這個模塊的配置信息刪除了,當然模塊的相關文件依舊在硬盤上。所以從硬盤選取模塊目錄添加到當前項目中,就必須走完整個流程,這樣模塊的相關信息才會重新寫入配置文件中,那么已經寫入配置文件的模塊,你如果再從硬盤選擇添加,IDEA 會提示有關的 .iml 配置文件已經存在了,你是否需要覆蓋,你可以選擇覆蓋或者選擇重復使用已存在的配置文件都可以。
實際上項目的模塊信息是寫入到文件 projectname/.idea/modules.xml 中,如下所示:
<?xml version="1.0" encoding="UTF-8"?> <project version="4"><component name="ProjectModuleManager"><!--標簽<modules/>內有幾個<module/>就表示有幾個模塊,如果remove模塊,則下面對應的<module/>會被刪除--><modules><module fileurl="file://$PROJECT_DIR$/encode/encode.iml" filepath="$PROJECT_DIR$/encode/encode.iml" /><module fileurl="file://$PROJECT_DIR$/jdbc/jdbc.iml" filepath="$PROJECT_DIR$/jdbc/jdbc.iml" /><module fileurl="file://$PROJECT_DIR$/servlet-demo/servlet-demo.iml" filepath="$PROJECT_DIR$/servlet-demo/servlet-demo.iml" /></modules></component> </project>打開項目時,IDEA 會去讀取上面的配置文件,然后在模塊列表窗格中顯示模塊列表,如下圖所示:
從項目源中選擇模塊加入當前項目中
不論是完全地新建模塊還是選擇硬盤上已有的模塊目錄添加,對于 IDEA 而言,都是新建模塊,選擇模塊只是硬盤的文件無需創建而已,但是模塊的相關數據同樣要重新寫入 IDEA 相關的配置文件中。而完全新建模塊,只是 IDEA 會先根據用戶自定義的內容去調操作系統的相關接口創建文件(目錄或者文件),然后再把相關的模塊數據寫入到配置文件中。
其實任何第三方的文件管理工具的實現原理都是這樣的,第三方軟件無法將特有的屬性添加到操作系統的文件系統中,所以只能把操作系統的文件名稱、路徑等信息記載下來,然后賦予第三方軟件自己特有的屬性內容 ,從而在第三方的軟件中實現對硬盤上的文件的間接管理。
上面的操作其實就是讓你選擇包的根目錄,或者叫源代碼的根目錄(Source Root),通常是 src,在目錄 src 下創建包,在包下創建源文件,指定了包的根目錄,IDEA 就知道源文件在哪里,于是 IDEA 就把所有的源文件路徑作為編譯器的參數,編譯根據路徑找到源文件然后進行編譯,而編譯好的 class 文件則放在 IDEA 指定的項目根目錄下的 out/production/ 目錄下面。
說白了,其實 IDEA 就是自動執行下面的編譯命令語句:
cd 項目根目錄 javac @sourcefiles -d ./out/production/模塊名稱/文件 sourcefiles 包含所有的源文件路徑,目錄 out 則是存放 class 文件的目標目錄。
如何移除項目中的模塊
移除模塊,只是將模塊從項目中移除,即把文件 modules.xml 中對應的標簽刪除掉,這樣使用 IDEA 打開項目就看不到被移除的模塊了,但是模塊的文件依舊保存在硬盤中。
方式一,選擇模塊的根目錄(Content Root),鼠標右鍵 Remove
方式二,打開【項目結構】窗口,在模塊列表中選中模塊,點擊上方的減號(“-”)來移除項目
從項目源選擇沒有源碼文件的模塊加入到項目中(有問題)
如果你選擇的模塊沒有源碼文件,那么作為模塊添加到項目中也不能正常使用,因為在添加模塊的過程中需要選擇源碼文件的根目錄,而你的模塊下沒有源碼文件,所以在這個步驟中就出現問題了:
那么你繼續添加后,在模塊管理界面中,根本無法配置源碼文件的根目錄,什么意思?看下圖:
也無法創建包(Package),我選中 src 目錄,點擊鼠標右鍵根本看不到 Package:
目錄的顏色也是不同的:
你可以在【項目管理】窗口選中目錄,點擊鼠標右鍵,然后選擇【Mark Directory as】–>【Sources Root】:
標記為【Sources Root】之后,目錄的顏色就變成“藍色”的,此時選中它,然后點擊鼠標右鍵,在【new】菜單下的子項中就可以看到 【Package】了:
接著你選擇包,然后創建類文件,創建完成后再去模塊管理界面看下,你會發現還是無法選擇模塊的 Sources Root :
我高度懷疑,這是 IDEA 的 bug。
如何導入沒有源代碼根目錄的模塊(非Java模塊)
創建一個相同名稱的模塊,在創建過程中會提示是否覆蓋已存在的 .iml 文件,選擇覆蓋即可。
關于模塊的配置文件
你把某個目錄當成項目的模塊添加到項目中,那么這個模塊根目錄下面就會自動生成一個 .iml 文件,這個配置文件記載了模塊的源碼文件的根目錄等信息。
<?xml version="1.0" encoding="UTF-8"?> <module type="JAVA_MODULE" version="4"><component name="NewModuleRootManager" inherit-compiler-output="true"><exclude-output /><!--指定了內容根目錄的位置--><content url="file://$MODULE_DIR$"><!--指定了源文件根目錄的位置--><sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /></content><orderEntry type="inheritedJdk" /><orderEntry type="sourceFolder" forTests="false" /></component> </module>總結
以上是生活随笔為你收集整理的IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IntelliJ IDEA 怎么知道项目
- 下一篇: bose耳机快捷键(Bose耳机快捷键)