好程式設計師Java培訓分享maven-概述
好程式設計師Java 培訓分享 maven- 概述 一、為什麼要使用Maven , 在沒有Maven 之前我們的開發存在的問題
專案如果需要引入第三方的開源庫就必須去官方網站或別的途徑去下載jar 包 , 然後將下載襲來的 jar 包必須手動複製,貼上到 WEB-INF/lib 目錄下 , 當某些 jar 包有依賴的時候,還要去下載對應的依賴 jar 包 , 如果不小心漏掉了 , 程式執行直接出錯
jar 包去哪裡下 ?
要對jar 包升級怎麼辦 ?
jar 包依賴衝突了怎麼辦 ?
然後專案寫完之後, 我們需要對專案進行編譯 , 測試 , 打包 , 部署等一系列工作 , 操作起來都不是特別的簡潔 , 所以這個時候 Maven 就出現了
二、什麼是Maven
Maven 是一個採用純 Java 編寫的開源專案管理工具 , Maven 採用了一種被稱之為 Project Object Model (POM) 概念來管理專案,所有的專案配置資訊都被定義在一個叫做 POM.xml 的檔案中
POM 怎麼理解?
我們使用Java 是物件導向程式設計,物件就是我們的類
而Maven 是面向專案,把我們的專案看做成是一個物件來進行管理
是一個跨平臺的專案管理工具,主要服務於Java 平臺的專案構建、依賴管理和專案資訊管理。
專案構建:透過外掛幫你完成專案的清理、編譯、測試、打包、部署。比如之前除了編寫原始碼,我們每天有相當一部分時間花在了編譯、執行單元測試、生成文件、打包和部署等繁瑣而又不得不做的工作上
依賴管理:透過座標從maven 倉庫匯入 java 類庫( jar 檔案)。比如之前專案匯入 jar 。是透過 copy 方式匯入專案中,而且還會存在 jar 之間的依賴和衝突。而 maven 解決了這些問題,幫我們下載 Jar 包
倉庫管理:提供統一管理所有 Jar 包的工具;
專案資訊管理:專案描述、開發者列表、版本控制系統地址等。比如釋出版本之後我們可能還要對版本進行升級
三、其它流行的構建工具( 瞭解 )
在Java 的世界裡,目前在被使用的常用構建工具有三個: Ant , Maven , Gradle 。
Ant 的核心是由 Java 編寫,採用 XML 作為構建指令碼,這樣就允許你在任何環境下,執行構建。 Ant 基於任務鏈思想,任務之間定義依賴,形成先後順序。缺點是使用 XML 定義構建指令碼,導致指令碼臃腫, Ant 自身沒有為專案構建提供指導,導致每個 build 指令碼都不一樣,開發人員對於每個專案都需要去熟悉指令碼內容,沒有提供在 Ant 生態環境內的依賴管理工具。
Maven 團隊意識到 Ant 的缺陷,採用標準的專案佈局,和統一的生命週期,採用約定由於配置的思想,減少構建指令碼需要的編寫內容,活躍的社群,可以方便找到合適的外掛,強大的依賴管理工具。缺點是採用預設的結構和生命週期,太過限制,編寫外掛擴充套件麻煩, XML 作為構建指令碼。
而Gradle 同時擁有 Ant 和 Maven 的優點,它是基於 Groovy 的 DSL ,提供宣告式的構建語言,採用標準的專案佈局,但擁有完全的可配置性,就是可以改,透過外掛,提供預設的構建生命週期,也可以自己定義任務,單獨執行任務,定義任務間的依賴,強大的依賴管理工具,與 Maven 和 Ivy 倉庫結合,與 Ant 天生相容,有效的重用 Ant 的任務,多種實現外掛的方式,強大的官方外掛庫,從構建級別,支援從 Ant 或者 Maven 的逐步遷移,透過包裝器,無縫的在各個平臺執行。
如何識別專案構建工具,一般來說,一個專案的根目錄中就會包含構建工具的配置檔案資訊,也表明了該專案使用的構建工具,通常有如下的對應關係
build.xml - 該專案使用 Ant 構建
pom.xml - 該專案使用 Maven 構建
build.gradle - 該專案使用 Gradle 構建
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2708915/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 好程式設計師Java培訓分享Java類載入的過程概述程式設計師Java
- 好程式設計師Java培訓分享Redis快取使用場景概述程式設計師JavaRedis快取
- 好程式設計師Java培訓分享SpringBoot -YAML程式設計師JavaSpring BootYAML
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師Java培訓分享BigDecimal的用法程式設計師JavaDecimal
- 好程式設計師Java培訓分享如何快速入門Java程式設計程式設計師Java
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- 好程式設計師Java培訓分享20個Java程式設計師基礎題程式設計師Java
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 好程式設計師Java培訓分享如何快速入門Java程式設計師Java
- 好程式設計師Java培訓分享Java包是什麼?程式設計師Java
- 好程式設計師Java培訓分享Java多執行緒程式設計師Java執行緒
- 好程式設計師Java培訓分享本地快取如何設計程式設計師Java快取
- 好程式設計師Java培訓分享SpringBoot -啟動流程程式設計師JavaSpring Boot
- 好程式設計師Java培訓分享For迴圈詳解程式設計師Java
- 好程式設計師Java培訓分享Spring Ioc的原理程式設計師JavaSpring
- 好程式設計師Java培訓分享SpringBoot入門篇程式設計師JavaSpring Boot
- 好程式設計師Java培訓分享演算法系列之演算法概述程式設計師Java演算法
- 好程式設計師Java培訓分享學Java程式設計要注意什麼程式設計師Java
- 好程式設計師Java培訓分享Java和HTML的區別?程式設計師JavaHTML
- 好程式設計師Java培訓分享Java物件導向概念解析程式設計師Java物件
- 好程式設計師Java培訓分享Java初學者必讀程式設計師Java
- 好程式設計師Java培訓分享MySQL算術運算子程式設計師JavaMySql
- 好程式設計師Java培訓分享SpringBoot -自動配置原理程式設計師JavaSpring Boot
- 好程式設計師Java培訓分享Mybatis面試題集合程式設計師JavaMyBatis面試題
- 好程式設計師Java培訓分享Java EE與Java的區別程式設計師Java
- 好程式設計師雲端計算培訓分享Kubernetes基礎模組概述程式設計師
- 好程式設計師大資料培訓分享HBase Filter過濾器概述程式設計師大資料Filter過濾器
- 好程式設計師Java培訓分享Java面試題集合篇一程式設計師Java面試題
- 好程式設計師Java培訓分享Java面試題集合篇二程式設計師Java面試題
- 好程式設計師Java培訓分享學習Java需要哪些基礎程式設計師Java
- 好程式設計師Java培訓分享面試Java的注意事項程式設計師Java面試
- 好程式設計師Java培訓分享Java中級面試題合集程式設計師Java面試題
- 好程式設計師Java培訓分享Java集合的兩種排序方法程式設計師Java排序
- 好程式設計師Java培訓分享Java讀寫Properties配置檔案程式設計師Java
- 好程式設計師Java培訓分享學Java需要什麼基礎?程式設計師Java
- 好程式設計師Java培訓分享Java基礎知識總結程式設計師Java