1.1 大型程序

我們已經學會瞭如何編寫小程序,所以現在我們將學習如何編寫大程序。如您所知,程序越大越複雜,為其開發支付的錢就越多:)讓我們從一些背景開始......

隨著程序規模的增長,開發人員面臨著兩個新的挑戰:

  • 很多人都在為同一個程序工作。
  • 沒有這樣的人會知道程序的全部代碼。

很多時候,當程序員在程序的一個地方修復了一個錯誤,同時在另一個地方破壞了某些東西時,情況就開始出現了。發布文檔甚至有這個笑話:

變更清單:

  • 修復了舊錯誤:)
  • 添加了新的:(

然後他們想出了兩種方法來解決這個問題:技術和管理。

技術方法是將程序分成幾個部分:庫和模塊。每個這樣的模塊都是一塊小磚塊,然後可以從中構建大型項目。庫是可以在不同程序中使用的通用組件。

管理方法更有趣——他們限制了可以從事一個項目/圖書館的人數。根據經驗,他們甚至提出了一個規則:團隊的規模應該大到“兩個比薩餅就能養活它。 ” 這通常意味著如果有超過8 個人在做一個項目,那麼它需要拆分成兩個項目。

在 Java 開發人員社區中,編寫適用於所有場合的庫並使其公開可用已成為一種流行趨勢。因此,Java 程序員不能再次編寫相同的代碼(通常是原始的並且包含錯誤),而是使用現成的和經過驗證的解決方案

另一個動機是 Java 語言在編寫服務器端解決方案(它在後端工作)時大受歡迎。首先,服務器軟件對可靠性的要求更高, 使用久經考驗的庫總比自己寫代碼好。

其次,服務器實際上對代碼的大小沒有限制。移動應用程序的開發人員試圖將其塞入 10 兆字節,而桌面應用程序則塞入 100 兆字節。一個 Java 後端開發人員可以將數十 GB 的庫塞進一個項目中,沒有人會和他說一句話:)

順便說一句,這不是開玩笑。您很容易遇到包含幾十個模塊和幾百個庫的後端項目。但是描述(和更改!)此類項目的構建腳本變得極其困難。

然後 Maven 出現了。

1.2 Maven簡介

Maven是一個用於項目構建管理的特殊“框架”。它標準化了三件事:
  • 項目描述;
  • 項目構建腳本;
  • 庫之間的依賴關係。

Maven的前身是Ant,繼任者是Gradle。但正是 Maven 開發和完善了這三個列出的標準,並規範了它們的交互。是他將 Java 社區的工作帶到了一個新的水平。讓我們更詳細地看一下。

行家

從技術上講,Maven 是一個特殊的程序/服務,其主要目的是管理構建項目的過程。它可以簡單地作為存檔下載並解壓到任何目錄。您不需要為此專門安裝程序。

她沒有圖形界面 -所有命令都是使用控制台向她提供的。為了使其更舒適地使用它,建議在您的操作系統中註冊特殊的環境變量。

Maven 還有一個特殊的存儲庫(目錄/文件夾),它存儲在構建項目時使用的庫。您需要選擇磁盤上的某個文件夾並將其指定為存儲庫。

另一個有趣的事情是所有庫都有一個全局 Maven 存儲庫,但我們稍後會討論這個。

1.3 下載並安裝Maven

Maven 有一個官方站點maven.apache.org。該項目有很多文檔,所以如果您有任何困難或其他問題 - 請進來,不要害羞。

同樣在下載頁面 ( https://maven.apache.org/download.cgi ) 上,您可以下載 maven 存檔 (apache-maven-3.8.5-bin.zip)。解壓後的存檔大約需要 10 MB,儘管本地 Maven 存儲庫最終將需要數百兆字節的內存。

Maven 是用 Java 編寫的,需要至少版本 7 的 JRE,以及定義的 JAVA_HOME 環境變量。

只需在您的計算機上為 Maven 創建一個文件夾,例如d:\devtools,然後將帶有 Maven 的存檔解壓縮到其中。因此,您應該得到一個類似d:\devtools\maven\bin 的文件夾,項目的主要二進製文件將位於其中。

1.4 環境變量

之後,您需要將解壓後的存檔到 bin 文件夾的路徑添加到 PATH 環境變量中。

要在 Windows 10 中設置環境變量,您需要進入控制面板 - 系統 - 高級系統設置。然後點擊“環境變量”,找到PATH選擇“編輯”,然後把路徑d:\devtools\maven\bin添加到該行的末尾。注意,路徑必須準確指向 bin 文件夾。

在基於 Unix 的操作系統上,可以使用控制台命令添加環境變量:

export PATH=/opt/apache-maven-3.8.5/bin:$PATH

如果你做的一切都正確,那麼你需要在控制台中輸入命令:“mvn -v”。作為回應,您會看到類似以下內容:

C:\Users\Zapp>mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200)
Maven home: T:\apache-maven-3.0.5\bin\..
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: en_US, platform encoding: Cp1251
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

1.5 本地 Maven 倉庫

您還可以設置一個特殊的文件夾,Maven 將在其中存儲構建項目時將使用的 jar 庫。此文件夾稱為本地 maven 存儲庫

如果沒有指定這樣的文件夾,Maven 將在當前用戶的主目錄中創建它。我的目錄是:C:\Users\Zapp\.m2

該文件夾有一個相當具體的名稱“.m2”。雖然它不會嚇到 Linux 用戶 - 這是一種相當常見的方法來命名各種“存儲庫”和/或任何其他服務信息存儲。

重要的!不要將 Maven 放在系統文件夾中,因為它在運行期間需要對這些文件夾的寫入權限,這可能對防病毒軟件或操作系統不利。

3.5 版之前的 Maven 需要一個名為 M2_HOME 的環境變量,但這不再是必需的。

您可以在以下鏈接閱讀有關配置 Maven 的更多信息:https ://maven.apache.org/configure.html