1. 程式人生 > >Build Tool/Maven, Gradle

Build Tool/Maven, Gradle

簡單 系統 由於 ike 多工程 執行文件 too 按鈕 鏈接

一、Build Tool

1、什麽是Build Tool

build tool是可以自動由源代碼創建可執行的應用程序的程序。 Building 包括編譯、鏈接和打包代碼成一個可用的或可執行形式。 在小型項目,開發人員常常會手動調用構建過程。在更大的項目中這是不實用的,那樣會很難跟蹤需要構建什麽,在什麽順序和依賴關系構建的過程。 使用自動化工具允許構建過程更一致。

2、為什麽使用Build Tool

日常開發中我們當然不會每次都在終端中使用命令一個個編譯執行文件,我們只需要在IDE中點擊運行按鈕,IDE就會幫助我們執行構建項目的全過程,但是使用IDE構建有一個很嚴重的缺陷就是遷移成本問題,有可能兩個團隊使用的IDE不同,導致相互項目交接時成本極高,還有就是一個項目在本地開發環境和集成測試環境都需要構建項目,很顯然IDE不能幫我們解決這個問題。

二、Maven

1、什麽是Maven

Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具軟件。 Maven 除了以程序構建能力為特色之外,還提供高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目采用 Maven 的比例在持續增長。 Maven這個單詞來自於意第緒語(猶太語),意為知識的積累,最初在Jakata Turbine項目中用來簡化構建過程。當時有一些項目(有各自Ant build文件),僅有細微的差別,而JAR文件都由CVS來維護。於是希望有一種標準化的方式構建項目,一個清晰的方式定義項目的組成,一個容易的方式發布項目的信息,以及一種簡單的方式在多個項目中共享JARs。

2、特點

Maven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然後Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。 Maven 有一個生命周期,當你運行 mvn install 的時候被調用。這條命令告訴 Maven 執行一系列的有序的步驟,直到到達你指定的生命周期。遍歷生命周期旅途中的一個影響就是,Maven 運行了許多默認的插件目標,這些目標完成了像編譯和創建一個 JAR 文件這樣的工作。 此外,Maven能夠很方便的幫你管理項目報告,生成站點,管理JAR文件,等等。

三、Gradle

1、什麽是Gradle

Gradle是一個基於Apache Ant和Apache Maven概念的項目自動化構建開源工具。它使用一種基於Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基於XML的各種繁瑣配置。 面向Java應用為主。當前其支持的語言限於Java、Groovy、Kotlin和Scala,計劃未來將支持更多的語言。 Gradle是一個基於JVM的構建工具,是一款通用靈活的構建工具,支持maven, Ivy倉庫,支持傳遞性依賴管理,而不需要遠程倉庫或者是pom.xml和ivy.xml配置文件,基於Groovy,build腳本使用Groovy編寫。

2、Gradle提供了什麽

  • 一種可切換的,像maven一樣的基於約定的構建框架,卻又從不鎖住你(約定優於配置)
  • 強大的支持多工程的構建
  • 強大的依賴管理(基於Apache Ivy),提供最大的便利去構建你的工程
  • 全力支持已有的Maven或者Ivy倉庫基礎建設
  • 支持傳遞性依賴管理,在不需要遠程倉庫和pom.xml和ivy配置文件的前提下
  • 基於groovy腳本構建,其build腳本使用groovy語言編寫
  • 具有廣泛的領域模型支持你的構建

Build Tool/Maven, Gradle