在Java編程中,有兩個常用的術語:項目和工程。盡管這兩個術語在編程的過程中經常被混用,但它們實際上有明顯的區別。
項目是一組相關的類、資源和配置文件的集合,這些文件共同支持實現某一特定的功能。項目通常存儲在單獨的目錄中,并以某個特定名稱來標識。Java項目可能包括源代碼、編譯后的二進制文件、JUnit測試用例、資源文件以及配置文件等,這些文件都位于同一個項目的目錄下。
myJavaProject/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ ├── resources/ │ │ └── webapp/ │ └── test/ │ ├── java/ │ └── resources/ ├── lib/ ├── build.gradle ├── README.md ├── LICENSE ├── .gitignore └── .editorconfig
與之不同的是,Java工程是指一個解決方案的集合,它可能包括多個項目、資源文件以及配置文件等。工程是高層次的抽象概念,它可以由多個項目組成,這些項目彼此之間可能并不直接相關。
myJavaWorkspace/ ├── myApp/ │ ├── myApp-web/ │ ├── myApp-server/ │ ├── myApp-client/ │ ├── lib/ │ └── README.md ├── mySharedLib/ │ ├── src/ │ ├── lib/ │ ├── build.gradle │ └── README.md ├── build.gradle └── README.md
通過這個上下文來理解,可以發現一個Java應用程序通常由一個或多個項目組成,這些項目可能都位于同一個工程下面。如果需要添加新功能或者維護一個Java應用程序,首先應該考慮的是該應用程序包含的所有項目,而不是考慮單個的項目。