自動化構(gòu)建工具Maven:專注服務(wù)Java平臺項目構(gòu)建
軟件是一個工程
我們在日常生活常能聽到工程這個詞,像橋梁工程、道路工程、南水北調(diào)工程等等。
工程說簡單點就是各個行業(yè)的從業(yè)人員通過總結(jié)規(guī)律或者方法,以最短的時間和人力、物力來做出高效可靠的東西。我們也就能理解橋梁工程,其實就是人們通過經(jīng)驗的總結(jié)和各種研究得出來的、用來修建橋梁時所采用的高效的方法,當然這種方法是可復用的。我們將這種作工程的思想應(yīng)用到軟件上,于是就產(chǎn)生了—軟件工程。
軟件工程:為了能夠?qū)崿F(xiàn)軟件的流水線式生產(chǎn),在設(shè)計和構(gòu)建軟件時能夠有一種規(guī)范和工程化的方法,人們便提出了軟件工程概念。
Maven是Apache軟件基金會組織維護的一款自動化構(gòu)建工具,專注服務(wù)于Java平臺的項目構(gòu)建和依賴管理。Maven這個單詞的本意是:專家,內(nèi)行,讀音是['me?v(?)n]或['mevn]。
Maven 是目前最流行的自動化構(gòu)建工具,對于生產(chǎn)環(huán)境下多框架、多模塊整合開發(fā)有重要作用,Maven 是一款在大型項目開發(fā)過程中不可或缺的重要工具,Maven通過一小段描述信息可以整合多個項目之間的引用關(guān)系,提供規(guī)范的管理各個常用jar包及其各個版本,并且可以自動下載和引入項目中。
上面的內(nèi)容做個日常生活的類比,做道菜就是一個工程。今天心情好,想吃紅燒肉,自動動手做:
1想買什么豬的那個位置的肉,黑豬肉,土豬肉等,使用冰糖還是綿白糖,用什么牌子的醬油等
到菜市場購買各種原料。
準備材料,洗肉,切塊,花椒,大料等
開始做了,肉下鍋燉煮,不同時間加入花椒,大料,冰糖,醬油
燉煮一段時間后,看肉是否熟透,嘗試口味,是不是咸了等等
做好了,開始吃了
需要刷碗,倒垃圾
這些工作從頭做到尾步驟非常繁瑣,每個步驟都是費時費力的。所以才出現(xiàn)凈菜,半成品菜,拿回家直接做可以了,只做 6,7 步驟就可以 。
軟件開發(fā)需要編譯代碼—>開發(fā)人員自己測試代碼—>把代碼打包—>部署項目到測試服務(wù)器—>測試人員測試功能—>測試測試出bug
開發(fā)人員需要修改bug—>開發(fā)人員自己測試代碼—>把代碼打包—>部署項目到測試服務(wù)器—>測試人員測試功能—>直到符合功能要求。
上述過程需要重復多次,大型項目中構(gòu)建項目比較復雜,有很多的配置文件,jar 文件,多個子項目等等。都用人力完成費時費力,效率比較低。maven 可以讓我們從上面的工作中解脫出來。
Maven 是自動化構(gòu)建工具。
傳統(tǒng)項目開發(fā)存在的問題
一個項目做成一個工程,造成工程比較龐大,需要使用多模塊來劃分項目;
項目中需要的數(shù)量眾多的jar 包,需要手動下載并引入,并且多個項目需要的jar 包存在重復的問題;
項目中需要的jar 包有版本兼容的問題,需要手動解決; 項目中需要的jar 包又依賴其它的jar 包,需要手動解決。
Maven 概述
Maven 是Apache 軟件基金會組織維護的一款自動化構(gòu)建工具,專注服務(wù)于Java 平臺的項目構(gòu)建和依賴管理。Maven 這個單詞的本意是:專家,內(nèi)行。讀音是['me?v(?)n]或['mevn]。
Maven 是目前最流行的自動化構(gòu)建工具,對于生產(chǎn)環(huán)境下多框架、多模塊整合開發(fā)有重要作用,Maven 是一款在大型項目開發(fā)過程中不可或缺的重要工具。
Maven 可以整合多個項目之間的引用關(guān)系,我們可以根據(jù)業(yè)務(wù)和分層需要任意拆分一個項目;
Maven 提供規(guī)范的管理各個常用jar 包及其各個版本,并且可以自動下載和引入項目中;
Maven 可以根據(jù)指定版本自動解決jar 包版本兼容問題; Maven 可以把jar包所依賴的其它jar 包自動下載并引入項目。
類似自動化構(gòu)建工具還有:Ant, Maven, Gradle。
構(gòu)建(build),是面向過程的(從開始到結(jié)尾的多個步驟),涉及到多個環(huán)節(jié)的協(xié)同工作。
構(gòu)建過程的幾個主要環(huán)節(jié)
①清理:刪除以前的編譯結(jié)果,為重新編譯做好準備。
②編譯:將Java源程序編譯為字節(jié)碼文件。
③測試:針對項目中的關(guān)鍵點進行測試,確保項目在迭代開發(fā)過程中關(guān)鍵點的正確性。
④報告:在每一次測試后以標準的格式記錄和展示測試結(jié)果。
⑤打包:將一個包含諸多文件的工程封裝為一個壓縮文件用于安裝或部署。Java工程對應(yīng)jar 包,Web工程對應(yīng)war包。
⑥安裝:在Maven環(huán)境下特指將打包的結(jié)果——jar包或war包安裝到本地倉庫中。
⑦部署:將打包的結(jié)果部署到遠程倉庫或?qū)ar包部署到服務(wù)器上運行

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀”爆發(fā)至今,五類新物種登上歷史舞臺
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機器人東風翻身?