Build Tools

1.Building tool是什麼?html

(Building tool)構建工具是一種工具,它負責構建流程的全部內容,並自動化與構建項目相關的全部內容。它致力於如下任務:java

  • 生成源代碼(若是在軟件項目中使用自動生成的代碼)。
  • 從項目的源代碼生成文檔。
  • 編譯源代碼。
  • 將已編譯的代碼打包到JAR文件或ZIP文件或WAR文件中。
  • 將打包的代碼安裝在本地存儲庫,服務器存儲庫或中央存儲庫或其餘位置。

2.爲何要使用Building tool?程序員

Build tool(構建工具)是從源代碼自動建立可執行應用程序的程序。構建包括將代碼編譯,連接和打包成可用或可執行的形式。在小項目中,開發人員一般會手動調用構建過程。這對於較大的項目來講是不實際的,在這些項目中,很難跟蹤須要構建的內容,構建過程當中的順序和依賴關係。使用自動化工具可使構建過程更加一致;(Building tool)可讓任務自動化,能夠最大限度地下降人工在手動構建軟件時出錯的風險,而且一般比手動執行相同過程的人員更快地進行構建。編程

使用(Building tool)構建工具對軟件開發項目的好處:服務器

  • 提升產品質量
  • 加速編譯和連接處理
  • 消除冗餘任務
  • 儘可能減小「糟糕的構建」
  • 消除對關鍵人員的依賴
  • 有研究和發佈的歷史,以便調查問題
  • 節省時間和金錢 - 因爲上面列出的緣由

3.Java世界如今主流的Building tool有哪些?網絡

Java世界中主要有三大構建工具:Ant、Maven和Gradle。通過幾年的發展,Ant幾乎銷聲匿跡、Maven也日薄西山,而Gradle的發展則如日中天。maven

Gradle和Maven都是項目自動構建工具,編譯源代碼只是整個過程的一個方面,更重要的是,你要把你的軟件發佈到生產環境中來產生商業價值,因此,你要運行測試,構建分佈、分析代碼質量、甚至爲不一樣目標環境提供不一樣版本,而後部署。整個過程進行自動化操做是頗有必要的。工具

Ant:測試

Ant是所謂的「現代構建工具」中的第一個,用於自動化構建過程。從理論上講,它有點像Make,沒有Make的皺紋。它以Java實現,主要用於Java項目。Ant的第一個公開發行版是在2000年,因爲獨立於平臺(如Java),具備較低的設置障礙和提供可重複的構建,它很快成爲最受歡迎的Java項目構建工具。後來,它也得到了接受插件的能力。gradle

然而,Ant被批評有一些缺點。構建腳本是用XML編寫的,XML本質上是分層的,不適合程序編程,這在構建腳本中常常須要。Ant常常聲稱過於冗長,這意味着它最終會使大型項目的構建腳本難以管理。

Maven:

Maven於2004年首次發佈,旨在改進開發人員當時使用Ant和其餘構建工具所遇到的一些問題。Maven的最大成就被認爲是項目結構約定,依賴關係管理和中央工件庫Maven Central的引入。

Maven仍然使用XML來編寫構建文件(pom.xml),但結構很是不一樣,由於它變成了聲明式的。如今開發人員沒必要記下致使某些目標的全部命令,而是描述項目的結構(若是它與約定不一樣),Maven自己提供了程序員能夠調用的可用目標。此外,Maven可以經過網絡下載依賴項。

Gradel:

Gradle是三者中最年輕的構建工具,它的開發人員試圖將Ant的強大功能和靈活性與Maven的依賴管理和約定相結合,以建立漂亮而有光澤的構建工具。通過幾年的開發人員,Gradle v1.0於2012年發佈,並迅速開始流行起來。它正在快速發展並已被一些大型企業採用 - 例如,Gradle被選爲Google Android操做系統的構建工具。

一個有趣的觀點是,使用Gradle,XML再也不使用了 - 相反,開發人員擁有基於JVM語言Groovy的域特定語言(DSL),這是發明的,所以開發人員能夠拋棄XML的冗長,寫得更簡單明瞭聲明。這引起了用戶之間的爭論,即標準的,易於理解(但冗長的)XML風格是否比DSL更好或更差。

參考:

https://developer.fedoraproject.org/tech/languages/java/java-build-tools-installation.html

https://zeroturnaround.com/rebellabs/java-build-tools-maven-gradle-and-ant-plus-the-dsl-vs-xml-debate/

相關文章
相關標籤/搜索