1. 程式人生 > >Maven概述(一)

Maven概述(一)

Maven是什麼?

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
(Apache Maven是一個軟體專案管理和理解工具。基於專案物件模型思想,Maven可以管理一個專案的構建、報告和資訊中心文件)

Maven 是一個專案管理和整合工具。作為Apache組織中的一個頗為成功的開源專案,Maven主要服務於基於Java平臺的專案構建、依賴管理和專案資訊管理。無論是小型的開源類庫專案,還是大型的企業級應用;無論是傳統的瀑布式開發,還是流行的敏捷模式,Maven都能大顯身手。

Maven為開發者提供了一套完整的構建生命週期框架。開發團隊幾乎不用花多少時間就能夠自動完成工程的基礎構建配置,因為Maven使用了一個標準的目錄結構和一個預設的構建生命週期。

Maven能夠幫助開發者完成以下工作:
- 構建
- 文件生成
- 報告
- 依賴
- SCMs
- 釋出
- 分發
- 郵件列表

總的來說,Maven簡化了工程的構建過程,並對其標準化。它無縫銜接了編譯、釋出、文件生成、團隊合作和其他任務。Maven提高了重用性,負責了大部分構建相關任務。

Maven的目標

Maven的主要目的是為開發者提供
- 一個可複用、可維護、更易理解的工程綜合模型
- 與這個模型互動的外掛或者工具
Maven工程結構和內容被定義在一個xml檔案中-pom.xml,是Project Object Model(POM)的簡稱,此檔案是整個Maven系統的基礎元件。

約定優於配置

Maven使用約定而不是配置,意味著開發者不需要再自己建立構建過程。
開發者不需要再關心每一個配置細節。Maven為工程提供了合理的預設行為。當建立Maven工程時,Maven會建立預設的工程結構。開發者只需要合理的放置檔案,而在pom.xml中不再需要定義任何配置。

下表展示了工程原始碼檔案、資原始檔的預設配置,和其他一些配置。假定${basedir}表示工程目錄:

配置項 預設值
source code ${basedir}/src/main/java
resources ${basedir}/src/main/resources
Tests ${basedir}/src/test
Complied byte code ${basedir}/target
distributable JAR ${basedir}/target/classes

為了構建工程,Maven為開發者提供了選項來配置生命週期目標和工程依賴(依賴於Maven的外掛擴充套件功能和預設的約定)。大部分的工程管理和構建相關的任務是由Maven外掛完成的。

開發人員不需要了解每個外掛是如何工作的,就能夠構建任何給定的Maven工程。詳細內容參考Maven外掛部分。

參考資料

相關推薦

Maven概述

Maven是什麼? Apache Maven is a software project management and comprehension tool. Based on the conc

Maven使用詳解:Maven概述

先決條件(Prerequisites) 你一定已經瞭解瞭如何安裝maven在你的電腦上,如果你還不知道改如何安裝maven的話,你可以通過詢問身邊的同事或者同學,也可以通過網路搜尋來檢視如何安裝,這裡我們對這個問題不做過多的解釋。 Maven安裝(Installation)

JavaSE 學習筆記之Java概述

environ 電子 6.0 run javase 有一點 架構 spa form 一、Java的三種技術架構: JAVAEE:Java Platform Enterprise Edition,開發企業環境下的應用程序,主要針對web程序開發; JAVASE:Java P

軟件工程學概述

面向對象 概述 進行 必須 中心 合作 文化 軟件 軟件危機 1.軟件危機 a.軟件工程關註於大型程序的構造 b.軟件工程的中心課題是控制復雜性 c.軟件經常變化 d.開發軟件的效率非常重要 e.和諧的合作是開發軟件的關鍵 f.軟件必須有效地支持它的用戶 g.在軟件工程領域

Zookeeper詳解-概述

可靠的 配置 應用程序 們的 共享 主機 專註 會有 減少 ZooKeeper是一種分布式協調服務,用於管理大型主機。在分布式環境中協調和管理服務是一個復雜的過程。ZooKeeper通過其簡單的架構和API解決了這個問題。ZooKeeper允許開發人員專註於核心應用程序邏輯

Maven系列從零開始構建Java應用程序

.so 構建java項目 cti maven生命周期 包含 兩個類 簡述 work pil 前段時間面試,面試官要我簡述一下Maven生命周期,what?Maven不就是用來構建一個項目的麽,生命周期是什麽東東(我之前一直做.net,但是想找關於java的工作,之前使用Ma

集合框架相關接口概述

ren array 方法 klist link map trees nth 框架 List VS Set List 是有序的可重復的, Set 是無序的不可重復的。 ArrayList VS LinkList ArrayList : 底層實現是數組,所以易查詢難存儲,

操作系統概述

相對 解決 用戶數 語言 完成 int compute 輸出 9.png 何為操作系統,操作系統的發展歷程 英語:operating system,縮寫作 OS 兩種定義: u Operating system is a program that manages the

深入淺出maven系列---maven的安裝和配置

window環境下,maven安裝配置過程。一共只需要4個步驟。以前配置過,但記憶模糊的同學可以檢視文字教程 文字教程 一: 【檢查】確認已經安裝jdk,已經環境變數中配置JAVA_HOME,已經修改Path 二:【下載】從http://maven.apache.org/download

maven系列-maven入門

我們平時在開發中,經常會用到maven,有時候接觸到的引入jar包的功能,有時候接觸到的是編譯,打包的功能。那maven到底是幹啥的呢? 什麼是maven? maven是一個跨平臺的專案管理工具,可以實現專案的構建、依賴管理、專案資訊管理等功能。 在專案構建方面,maven可以自動化

*javascript簡要概述

javascript簡要概述(一) JavaScript一種直譯式指令碼語言,是一種動態型別、弱型別、基於原型的語言,內建支援型別。它的直譯器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的指令碼語言,最早是在HTML網頁上使用,用來給HTML網頁增加動態功能。大家可以

idea部署Maven入門——環境變數的配置和下載

    介紹:       1  Maven是用來管理jar包的一種工具,       2  Maven主要是構建java專案和java web專案       &

大牛總結 Elastic Search 概述

目錄(?)[+] 題記: Elasticsearch研究有一段時間了,現特將Elasticsearch相關核心知識、原理從初學者認知、學習的角度,從以下9個方面進行詳細梳理。歡迎討論…… 0. 帶著問題上路——ES是如何產生的? (1)思考:大規模資料如何

TesseractOCR光學字元識別引擎概述

目錄 一、TesseractOCR引擎簡介 二、TesseractOCR架構 三、文字行和單詞的查詢(Text-line and Word Finding)   原文參見《Adapting the Tesseract Open Source OCR Engine f

MavenMaven是什麼

首先,Maven的正確發音是[ˈmevən],而不是“馬瘟”以及其他什麼瘟。Maven在美國是一個口 語化的詞語,代表專家、內行的意思,約等於北京話中的老炮兒。一個對Maven比較正式的定義是這麼說的:Maven是一個專案管理工具,它包含了一個專案物件模型 (P

Qt網路程式設計概述

Qt網路程式設計概述 QtNetWork模組提供了若干類支援TCP/IP客戶端伺服器端的開發。有如下兩類: 低階網路操作:QTcpSocket/QTcpServer/QUdpSocket 高階網路操作:QNetworkRequest/QNetworkReply

Boost Asio要點概述

【注】本文不是boost asio的完整應用講述,而是僅對其中要點的講解,主要參考了Boost Asio 1.68的官方文件(https://www.boost.org/doc/libs/1_68_0/doc/html/boost_asio/overview.html),程式

TIS107橋錯誤報告——概述

PCI介面錯誤(PCI Interface Errors):tsi 107支援pci本地匯流排規範(修訂版2.1)中指定的錯誤檢測和報告機制。 a、PCI地址奇偶校驗錯誤(PCI Address Parity Error): b、PCI資料奇偶校驗錯誤(PCI Data Parity Error):tsi

從招式與內功談起——設計模式概述

                      關於金庸小說中到底是招式重要還是內功重要的爭論從未停止,我們在這裡並不分析張無忌的九陽神功和令狐沖的獨孤九劍到底哪個更厲害,但我想每個武林人士夢寐以求的應該是既有淋漓的招式又有深厚的內功。看到這裡大家可能會產生疑問了?搞什麼,討論什麼招式與內功,我只是個軟體開發人員

Maven學習配置檔案pom.xml

Maven pom.xml 1、定義: POM全稱專案物件模型(Project Object Model)的簡稱,它是Maven專案中的檔案,使用XML表示,名稱叫做pom.xml。不過這個檔案中包含了該專案所有相關資訊(專案唯一ID、專案依賴、專案url、專案開發者等一切相關資訊)