IDEA中Project 和 Module的區別
工欲善其事,必先利其器
1、IntelliJ IDEA 官方對於Project和Module的定義如下:
(1)Project:
A project is a top-level organizational unit for your development work in IntelliJ IDEA. In its finished form,
a project may represent a complete software solution. A project is a collection of:
Your work results: source code, build scripts, configuration files, documentation, artifacts, etc.
SDKs and libraries that you use to develop, compile, run and test your code.
Project settings that represent your working preferences in the context of a project.
大致意思:
項目是您在IntelliJ IDEA中開發工作的頂級組織單元。在其完成的形式中,一個項目可以代表一個完整的軟件解決方案。
一個項目是一個集合:
您的工作結果:源代碼、構建腳本、配置文件、文檔、工件等。
用於開發、編譯、運行和測試代碼的sdk和庫。
表示項目上下文中工作首選項的項目設置。
(2)Module
A module is a part of a project that you can compile, run, test and debug independently.
Modules are a way to reduce complexity of large projects while maintaining a common (project) configuration.
Modules are reusable: if necessary, a module can be included in more than one project.
大致意思:
模塊是項目的一部分,可以獨立編譯、運行、測試和調試。
模塊是在維護公共(項目)配置的同時減少大型項目復雜性的一種方法。
模塊是可重用的:如果需要,一個模塊可以包含在多個項目中。
2、在此處我並不想深入講什么IDEA中的Project相當於Eclipse中的 Workspace,Module 相當於Eclipse系中的 Project 之類的話,因為有些小伙伴可能沒有用過Eclipse,或者說對Eclipse中的各級文件系統並不是很了解。
細品官方定義就能明白:
(1)、在IntelliJ IDEA中Project是最頂級的結構單元,一個Project是由一個或者多個Module組成。一些主流大型項目結構基本上都是由多個Module的結構組成。
(2)、主流大型項目一般都是按功能進行划分的,如:user-login-module(用戶登錄模塊)、user-role-module(用戶角色模塊)、user-permission-module(用戶權限模塊)等,模塊之間彼此相互依賴。通過這些Module的命名可以看出,它們都處於同一個項目中的模塊,彼此之間有着不可分割的業務關系。
(3)在一般情況下,IntelliJ IDEA是默認單Project單Module的,這使Project和Module合二為一,在沒有修改存儲路徑的前提下,顯然Project對Module具有強約束作用。
3、總結:
(1)、IDEA中的Project可以被理解成當前工作空間,而每一個Module就是這個工作空間里的工作項目。Project既是最頂層的結構單元——起了目錄的作用,也是最底層的工作環境——各個Module在上面工作。
(2)、一個Project中可以定義多個Module,Project與各個Module之間屬於父子關系,各個Module之間則屬於兄弟關系