久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Maven之

 神志屋 2017-09-29

 

        摘要:此篇筆記主要是對maven進(jìn)行一個簡介,、讓我們大致了解maven是做什么的,、內(nèi)容是對《Maven實(shí)戰(zhàn)》的摘要。強(qiáng)烈建議想學(xué)Maven的新手看這本書,、當(dāng)然也可以上網(wǎng)一些教學(xué)視頻、但是最重要的一條:動手,!不管看著再簡單、也要自己動手試試,!

 

一:何為Maven

 

        Maven這個詞可以翻譯為“知識的積累”,也可以翻譯為“專 家”或“內(nèi)行”,。本書將介紹Maven這一跨平臺的項(xiàng)目管理工具,。作為Apache組織中的一個頗為成功的開源項(xiàng)目,,Maven主要服務(wù)于基于Java平臺的項(xiàng)目構(gòu)建、依賴管理和項(xiàng)目信息管理,。無論是小型的開源類庫項(xiàng)目,,還是大型的企業(yè)級應(yīng)用,;無論是傳統(tǒng)的瀑布式開發(fā),還是流行的敏捷模式,,Maven都能大顯身手,。

 

        1.1  何為構(gòu)建

 

                不管你是否意識到,,構(gòu)建(build)是每一位程序員每天都在做的工作,。早上來 到公司,我們做的第一件事情就是從源碼庫簽出最新的源碼,,然后進(jìn)行單元測試,,如果發(fā)現(xiàn)失敗的測試,會找相關(guān)的同事一起調(diào)試,,修復(fù)錯誤代碼。接著回到自己的工作上來,,編寫自己的單元測試及產(chǎn)品代碼,我們會感激IDE隨時報出的編譯錯誤提示,。

                忙到午飯時間,,代碼編寫得差不多了,,測試也通過了,開心地享 用午餐,,然后休息,。下午先在昏昏沉沉中開了個例會,會議結(jié)束后喝杯咖啡繼續(xù)工作,。剛才在會上經(jīng)理要求看測試報告,,于是找了相關(guān)工具集成進(jìn)IDE,,生成了像模像樣的測試覆蓋率報告,接著發(fā)了一封電子郵件給經(jīng)理,,松了口氣,。誰料QA小組又發(fā)過來了幾個bug,,沒辦法,先本地重現(xiàn)再說,,于是熟練地用IDE生成了一個WAR包,部署到Web容器下,,啟動容器,。看到熟悉的界面了,,遵循bug報告,一步步重現(xiàn)了bug……快下班的時候,,bug修好了,,提交代碼,,通知 QA小組,在愉快中結(jié)束了一天的工作,。

                仔細(xì)總結(jié)一下,我們會發(fā)現(xiàn),,除了編寫源代碼,,我們每天有相當(dāng)一部分時間花在了編 譯、運(yùn)行單元測試,、生成文檔,、打包和部署等煩瑣且不起眼的工作上,這就是構(gòu)建,。如果我們現(xiàn)在還手工這樣做,,那成本也太高了,于是有人用軟件的方法讓這一系列工作完全自動化,,使得軟件的構(gòu)建可以像全自動流水線一樣,,只需要一條簡單的命令,所有煩瑣的步驟都能夠自動完成,,很快就能得到最終結(jié)果,。

 

        1.2  Maven是優(yōu)秀的構(gòu)建工具

 

                前面介紹了Maven的用途之一是服務(wù)于構(gòu)建,它是一個異常強(qiáng)大的構(gòu)建工具,,能 夠幫我們自動化構(gòu)建過程,,從清理,、編譯、測試到生成報告,,再到打包和部署,。我們不需要也不應(yīng)該一遍又一遍地輸入命令,,一次又一次地點(diǎn)擊鼠標(biāo),我們要做的是使用Maven配置好項(xiàng)目,,然后輸入簡單的命令(如mvn clean install),Maven會幫我們處理那些煩瑣的任務(wù),。

                Maven是跨平臺的,,這意味著無論是在Windows上,,還是在Linux或者M(jìn)ac上,都可以使用同樣的命令,。

                我們一直在不停地尋找避免重復(fù)的方法。設(shè)計的重復(fù),、編碼的重復(fù),、文檔的重復(fù),當(dāng) 然還有構(gòu)建的重復(fù),。Maven最大化地消除了構(gòu)建的重復(fù),,抽象了構(gòu)建生命周期,并且為絕大部分的構(gòu)建任務(wù)提供了已實(shí)現(xiàn)的插件,,我們不再需要定義過程,,甚至不需要再去實(shí)現(xiàn)這些過程中的一些任務(wù)。最簡單的例子是測試,,我們沒必要告訴Maven去測試,更不需要告訴Maven如何運(yùn)行測試,,只需要遵循Maven 的約定編寫好測試用例,當(dāng)我們運(yùn)行構(gòu)建的時候,,這些測試便會自動運(yùn)行,。

                想象一下,Maven抽象了一個完整的構(gòu)建生命周期模型,,這個模型吸取了大量其 他的構(gòu)建腳本和構(gòu)建工具的優(yōu)點(diǎn),,總結(jié)了大量項(xiàng)目的實(shí)際需求。如果遵循這個模型,,可以避免很多不必要的錯誤,,可以直接使用大量成熟的Maven插件來完成我們的任務(wù)(很多時候我們可能都不知道自己在使用Maven插件)。此外,如果有非常特殊的需求,,我們也可以輕松實(shí)現(xiàn)自己的插件。

                Maven還有一個優(yōu)點(diǎn),,它能幫助我們標(biāo)準(zhǔn)化構(gòu)建過程。在Maven之前,,十個項(xiàng)目可能有十種構(gòu)建方式;有了Maven之后,,所有項(xiàng)目的構(gòu)建命令都是簡單一致的,這極大地避免了不必要的學(xué)習(xí)成本,,而且有利于促進(jìn)項(xiàng)目團(tuán)隊(duì)的標(biāo)準(zhǔn)化。

                綜上所述,,Maven作為一個構(gòu)建工具,不僅能幫我們自動化構(gòu)建,,還能夠抽象構(gòu)建過程,提供構(gòu)建任務(wù)實(shí)現(xiàn),;它跨平臺,對外提供了一致的操作接口,,這一切足以使它成為優(yōu)秀的,、流行的構(gòu)建工具,。

 

        1.3  Maven不僅僅是構(gòu)建工具

 

                Java不僅是一門編程語言,還是一個平臺,,通過JRuby和Jython,我們可以在Java平臺上編寫和運(yùn)行Ruby和Python程序,。我們也應(yīng)該認(rèn)識到,Maven不僅是構(gòu)建工具,,還是一個依賴管理工具和項(xiàng)目信息管理工具。它提供了中央倉庫,能幫我們自動下載構(gòu)件,。

                在這個開源的年代里,,幾乎任何Java應(yīng)用都會借用一些第三方的開源類庫,這些 類庫都可通過依賴的方式引入到項(xiàng)目中來,。隨著依賴的增多,,版本不一致,、版本沖突、依賴臃腫等問題都會接踵而來,。手工解決這些問題是十分枯燥的,幸運(yùn)的是 Maven提供了一個優(yōu)秀的解決方案,,它通過一個坐標(biāo)系統(tǒng)準(zhǔn)確地定位每一個構(gòu)件(artifact),也就是通過一組坐標(biāo)Maven能夠找到任何一個 Java類庫(如jar文件),。Maven給這個類庫世界引入了經(jīng)緯,,讓它們變得有秩序,,于是我們可以借助它來有序地管理依賴,輕松地解決那些繁雜的依賴問題,。

                Maven還能幫助我們管理原本分散在項(xiàng)目中各個角落的項(xiàng)目信息,包括項(xiàng)目描述,、開發(fā)者列表、版本控制系統(tǒng)地址,、許可證、缺陷管理系統(tǒng)地址等,。這些微小的變化看起來很瑣碎,,并不起眼,但卻在不知不覺中為我們節(jié)省了大量尋找信息的時間,。除了直接的項(xiàng)目信息,,通過Maven自動生成的站點(diǎn),以及一些已有的插件,我們還能夠輕松獲得項(xiàng)目文檔,、測試報告,、靜態(tài)分析報告、源碼版本日志報告等非常具有價值的項(xiàng)目信息,。

                Maven還為全世界的Java開發(fā)者提供了一個免費(fèi)的中央倉庫,在其中幾乎可以找到任何的流行開源類庫,。通過一些Maven的衍生工具(如Nexus),我們還能對其進(jìn)行快速地搜索,。只要定位了坐標(biāo),Maven就能夠幫我們自動下載,,省去了手工勞動。

                使用Maven還能享受一個額外的好處,,即Maven對于項(xiàng)目目錄結(jié)構(gòu),、測試用 例命名方式等內(nèi)容都有既定的規(guī)則,只要遵循了這些成熟的規(guī)則,,用戶在項(xiàng)目間切換的時候就免去了額外的學(xué)習(xí)成本,,可以說是約定優(yōu)于配置(Convention Over Configuration)。

 

二: 為什么需要Maven 

 

        Maven不是Java領(lǐng)域唯一的構(gòu)建管理的解決方案,。本節(jié)將通過一些簡單的例子解釋Maven的必要性,并介紹其他構(gòu)建解決方案,如IDE,、Make和Ant,并將它們與Maven進(jìn)行比較,。

 

        2.1  組裝PC和品牌PC

 

                筆者初中時開始接觸計算機(jī),到了高中時更是夢寐以求希望擁有一臺自己的計算機(jī),。我的第一臺計算機(jī)是賽揚(yáng)733的,,選購是一個漫長的過程,,我先閱讀了大量的雜志以了解各類配件的優(yōu)劣,,CPU、內(nèi)存,、主板,、顯卡,,甚至聲卡,我都仔細(xì)地挑選,,后來還跑了很多商家,調(diào)貨,、討價還價,,組裝好后自己裝操作系統(tǒng)和驅(qū)動程序……雖然這花費(fèi)了我大量時間,,但我很享受這個過程??墒鞘聦?shí)證明,,裝出來的機(jī)器穩(wěn)定性不怎么好。

                一年前我需要配一臺工作站,,這時候我已經(jīng)沒有太多時間去研究電腦配件了。我選擇了某知名PC供應(yīng)商的在線商店,,大概瀏覽了一下主流的機(jī)型,選擇了我需要的配置,,然后下單,、付款,。接著PC供應(yīng)商幫我組裝電腦、安裝操作系統(tǒng)和驅(qū)動程序,。一周后,物流公司將電腦送到我的家里,,我接上顯示器、電源,、鼠標(biāo)和鍵盤就能直接使用了,。這為我節(jié)省了大量時間,,而且這臺電腦十分穩(wěn)定,,商家在把電腦發(fā)送給我之前已經(jīng)進(jìn)行了很好的測試,。對了,我還能享受兩年的售后服務(wù),。

                使用腳本建立高度自定義的構(gòu)建系統(tǒng)就像買組裝PC,耗時費(fèi)力,,結(jié)果也不一定很好。當(dāng)然,,你可以享受從無到有的樂趣,,但恐怕實(shí)際項(xiàng)目中無法給你那么多時間,。使用Maven就像購買品牌PC,,省時省力,并能得到成熟的構(gòu)建系統(tǒng),,還能得到來自于Maven社區(qū)的大量支持。唯一與購買品牌PC不同的是,,Maven是開源的,你無須為此付費(fèi),。如果有興趣,你還能去了解Maven是如何工作的,,而我們無法知道那些PC巨頭的商業(yè)秘密。

 

        2.2  IDE不是萬能的

 

                當(dāng)然,,我們無法否認(rèn)優(yōu)秀的IDE能大大提高開發(fā)效率。當(dāng)前主流的IDE如Eclipse和NetBeans等都提供了強(qiáng)大的文本編輯,、調(diào)試甚至重構(gòu)功能。雖然使用簡單的文本編輯器和命令行也能完成絕大部分開發(fā)工作,,但很少有人愿意那樣做,。然而,,IDE是有其天生缺陷的:

                ·     IDE依賴大量的手工操作。編譯,、測試、代碼生成等工作都是相互獨(dú)立的,,很難一鍵完成所有工作,。手工勞動往往意味著低效,意味著容易出錯,。

                ·     很難在項(xiàng)目中統(tǒng)一所有的IDE配置,,每個人都有自己的喜好,。也正是由于這個原因,,一個在機(jī)器A上可以成功運(yùn)行的任務(wù),到了機(jī)器B的IDE中可能就會失敗,。

                我們應(yīng)該合理利用IDE,而不是過多地依賴它,。對于構(gòu)建這樣的任務(wù),在IDE中一次次地點(diǎn)擊鼠標(biāo)是愚蠢的行為,。Maven是這方面的專家,而且主流IDE都集成了Maven,,我們可以在IDE中方便地運(yùn)行Maven執(zhí)行構(gòu)建。

 

        2.3  Make

 

                Make也許是最早的構(gòu)建工具,,它由StuartFeldman于1977年在Bell實(shí)驗(yàn)室創(chuàng)建。Stuart Feldman也因此于2003年獲得了ACM國際計算機(jī)組織頒發(fā)的軟件系統(tǒng)獎,。目前Make有很多衍生實(shí)現(xiàn),包括最流行的GNU Make和BSD Make,,還有Windows平臺的Microsoft nmake等。

                Make由一個名為Makefile的腳本文件驅(qū)動,,該文件使用Make自己定義的語法格式。其基本組成部分為一系列規(guī)則(Rules),,而每一條規(guī)則又包括目標(biāo)(Target)、依賴(Prerequisite)和命令(Command),。Makefile的基本結(jié)構(gòu)如下:


  1.    
  2. TARGET… : PREREQUISITE…   
  3. COMMAND   
  4. …   
  5. …   

                Make通過一系列目標(biāo)和依賴將整個構(gòu)建過程串聯(lián)起來,同時利用本地命令完成每個目標(biāo)的實(shí)際行為,。Make的強(qiáng)大之處在于它可以利用所有系統(tǒng)的本地命令,,尤其是UNIX/Linux系統(tǒng),豐富的功能,、強(qiáng)大的命令能夠幫助Make快速高效地完成任務(wù)。

                但是,,Make將自己和操作系統(tǒng)綁定在一起了,。也就是說,使用Make,,就不能實(shí)現(xiàn)(至少很難)跨平臺的構(gòu)建,這對于Java來說是非常不友好的,。此外,,Makefile的語法也成問題,,很多人抱怨Make構(gòu)建失敗的原因往往是一個難以發(fā)現(xiàn)的空格或Tab使用錯誤。

 

        2.4  Ant

 

                Ant不是指螞蟻,,而是意指“另一個整潔的工具”(Another Neat Tool),,它最早用來構(gòu)建著名的Tomcat,,其作者James Duncan Davidson創(chuàng)作它的動機(jī)就是因?yàn)槭懿涣薓akefile的語法格式。我們可以將Ant看成是一個Java版本的Make,,也正因?yàn)槭褂昧薐ava,Ant是跨平臺的,。此外,Ant使用XML定義構(gòu)建腳本,,相對于Makefile來說,這也更加友好,。

                與Make類似,,Ant有一個構(gòu)建腳本build.xml,如下所示:


  1. <?xml version="1.0"?>  
  2. <project name="Hello"default="compile">  
  3. <target name="compile"description="compile the Java source code to class files">  
  4. <mkdir dir="classes"/>  
  5. <javac srcdir="."destdir="classes"/>  
  6. </target>  
  7. <target name="jar"depends="compile" description="create a Jar file ">  
  8. <jar destfile="hello.jar">  
  9. <fileset dir="classes"includes="**/*.class"/>  
  10. <manifest>  
  11. <attribute name="Main.Class"value="HelloProgram"/>  
  12. </manifest>  
  13. </jar>  
  14. </target>  
  15. </project>  

                build.xml的基本結(jié)構(gòu)也是目標(biāo)(target),、依賴(depends),,以及實(shí)現(xiàn)目標(biāo)的任務(wù)。比如在上面的腳本中,,jar目標(biāo)用來創(chuàng)建應(yīng)用程序jar文件,,該目標(biāo)依賴于compile目標(biāo),,后者執(zhí)行的任務(wù)是創(chuàng)建一個名為classes的文件夾,,編譯當(dāng)前目錄的java文件至classes目錄。compile目標(biāo)完成后,,jar目標(biāo)再執(zhí)行自己的任務(wù)。Ant有大量內(nèi)置的用Java實(shí)現(xiàn)的任務(wù),,這保證了其跨平臺的特質(zhì),同時,,Ant也有特殊的任務(wù)exec來執(zhí)行本地命令,。

                和Make一樣,Ant也都是過程式的,,開發(fā)者顯式地指定每一個目標(biāo),,以及完成該目標(biāo)所需要執(zhí)行的任務(wù),。針對每一個項(xiàng)目,,開發(fā)者都需要重新編寫這一過程,,這里其實(shí)隱含著很大的重復(fù),。Maven是聲明式的,項(xiàng)目構(gòu)建過程和過程各個階段所需的工作都由插件實(shí)現(xiàn),,并且大部分插件都是現(xiàn)成的,,開發(fā)者只需要聲明項(xiàng)目的基本元素,Maven就執(zhí)行內(nèi)置的,、完整的構(gòu)建過程。這在很大程度上消除了重復(fù),。

                Ant是沒有依賴管理的,,所以很長一段時間Ant用戶都不得不手工管理依賴,這是一個令人頭疼的問題,。幸運(yùn)的是,,Ant用戶現(xiàn)在可以借助Ivy管理依賴。而對于Maven用戶來說,,依賴管理是理所當(dāng)然的,,Maven不僅內(nèi)置了依賴管理,更有一個可能擁有全世界最多Java開源軟件包的中央倉庫,,Maven用戶無須進(jìn)行任何配置就可以直接享用,。

 

2.5  不重復(fù)發(fā)明輪子

 

                小張是一家小型民營軟件公司的程序員,他所在的公司要開發(fā)一個新的Web項(xiàng)目,。經(jīng)過協(xié)商,,決定使用Spring,、iBatis和Tapstry,。jar包去哪里找呢?公司里估計沒有人能把Spring,、iBatis和Tapstry所使用的jar包一個不少地找出來,。大家的做法是,先到Spring的站點(diǎn)上去找一個spring.with.dependencies,然后去iBatis的網(wǎng)站上把所有列出來的jar包下載下來,,對Tapstry,、Apachecommons等執(zhí)行同樣的操作,。項(xiàng)目還沒有開始,,WEB.INF/lib下已經(jīng)有近百個jar包了,帶版本號的,、不帶版本號的、有用的,、沒用的,、相沖突的,怎一個“亂”字了得,!

                在項(xiàng)目開發(fā)過程中,,小張不時地發(fā)現(xiàn)版本錯誤和版本沖突問題,,他只能硬著頭皮逐一解決。項(xiàng)目開發(fā)到一半,,經(jīng)理發(fā)現(xiàn)最終部署的應(yīng)用的體積實(shí)在太大了,,要求小張去掉一些沒用的jar包,于是小張只能加班加點(diǎn)地一個個刪……

                小張隱隱地覺得這些依賴需要一個框架或者系統(tǒng)來進(jìn)行管理,。

                小張喜歡學(xué)習(xí)流行的技術(shù),,前幾年Ant十分流行,他學(xué)了,,并成為了公司這方面的專家,。小張知道,Ant打包,,無非就是創(chuàng)建目錄,,復(fù)制文件,編譯源代碼,,使用一堆任務(wù),,如copydir、fileset,、classpath,、ref、target,,然后再jar,、zip,、war,打包就成功了,。

                項(xiàng)目經(jīng)理發(fā)話了:“兄弟們,,新項(xiàng)目來了,小張,,你來寫Ant腳本,!”

                “是,保證完成任務(wù),!”接著,,小張繼續(xù)創(chuàng)建一個新的XML文件。target clean; target compile; target jar; …… 不知道他是否想過,,在他寫的這么多的Ant腳本中,,有多少是重復(fù)勞動,有多少代碼會在一個又一個項(xiàng)目中重現(xiàn),。既然都差不多,,有些甚至完全相同,為什么每次都要重新編寫,?

                終于有一天,,小張意識到了這個問題,想復(fù)用Ant腳本,,于是在開會時他說:“以后就都用我這個規(guī)范的Ant腳本吧,,新的項(xiàng)目只要遵循我定義的目錄結(jié)構(gòu)就可以了?!苯?jīng)理聽后覺得很有道理:“嗯,,確實(shí)是個進(jìn)步,?!?/p>

                這時新來的研究生發(fā)言了:“經(jīng)理,用Maven吧,,這個在開源社區(qū)很流行,,比Ant更方便?!毙堃宦牶荏@訝,,Maven真比自己的“規(guī)范化Ant”強(qiáng)大?其實(shí)他不知道自己只是在重新發(fā)明輪子,,Maven已經(jīng)有一大把現(xiàn)成的插件,,全世界都在用,你自己不用寫任何代碼,!

                為什么沒有人說“我自己寫的代碼最靈活,,所以我不用Spring,我自己實(shí)現(xiàn)IoC;我不用Hibernate,,我自己封裝JDBC”,?

 

三:Maven與極限編程 

 

        極限編程(XP)是近些年在軟件行業(yè)紅得發(fā)紫的敏捷開發(fā)方法,它強(qiáng)調(diào)擁抱變化,。該軟件開發(fā)方法的創(chuàng)始人Kent Beck提出了XP所追求的價值,、實(shí)施原則和推薦實(shí)踐。下面看一下Maven是如何適應(yīng)XP的,。

首先看一下Maven如何幫助XP團(tuán)隊(duì)實(shí)現(xiàn)一些核心價值:

        ·     簡單,。Maven暴露了一組一致、簡潔的操作接口,,能幫助團(tuán)隊(duì)成員從原來的高度自定義的,、復(fù)雜的構(gòu)建系統(tǒng)中解脫出來,使用Maven現(xiàn)有的成熟的,、穩(wěn)定的組件也能簡化構(gòu)建系統(tǒng)的復(fù)雜度,。

        ·     交流與反饋。與版本控制系統(tǒng)結(jié)合后,,所有人都能執(zhí)行最新的構(gòu)建并快速得到反饋,。此外,自動生成的項(xiàng)目報告也能幫助成員了解項(xiàng)目的狀態(tài),,促進(jìn)團(tuán)隊(duì)的交流,。

此外,Maven更能無縫地支持或者融入到一些主要的XP實(shí)踐中:

        ·     測試驅(qū)動開發(fā)(TDD),。TDD強(qiáng)調(diào)測試先行,,所有產(chǎn)品都應(yīng)該由測試用例覆蓋。而測試是Maven生命周期的最重要的組成部分之一,,并且Maven有現(xiàn)成的成熟插件支持業(yè)界流行的測試框架,,如JUnit和TestNG。

        ·     十分鐘構(gòu)建,。十分鐘構(gòu)建強(qiáng)調(diào)我們能夠隨時快速地從源碼構(gòu)建出最終的產(chǎn)品,。這正是Maven所擅長的,只需要一些配置,,之后用一條簡單的命令就能讓Maven幫你清理,、編譯、測試,、打包,、部署,然后得到最終的產(chǎn)品,。

        ·     持續(xù)集成(CI),。CI強(qiáng)調(diào)項(xiàng)目以很短的周期(如15分鐘)集成最新的代碼,。 實(shí)際上,CI的前提是源碼管理系統(tǒng)和構(gòu)建系統(tǒng)。目前業(yè)界流行的CI服務(wù)器如Hudson和CruiseControl都能很好地和Maven進(jìn)行集成,。也就是說,,使用Maven后,持續(xù)集成會變得更加方便,。

        ·     富有信息的工作區(qū),。 這條實(shí)踐強(qiáng)調(diào)開發(fā)者能夠快速方便地了解到項(xiàng)目的最新狀態(tài)。當(dāng)然,,Maven并不會幫你把測試覆蓋率報告貼到墻上,,也不會在你的工作臺上放個鴨子告訴你構(gòu)建失敗了。不過使用Maven發(fā)布的項(xiàng)目報告站點(diǎn),,并配置你需要的項(xiàng)目報告,,如測試覆蓋率報告,都能幫你把信息推送到開發(fā)者眼前,。

        上述這些實(shí)踐并非只在XP中適用,。事實(shí)上,除了其他敏捷開發(fā)方法如SCRUM之外,,幾乎任何軟件開發(fā)方法都能借鑒這些實(shí)踐,。也就是說,Maven幾乎能夠很好地支持任何軟件開發(fā)方法,。

        例 如,,在傳統(tǒng)的瀑布模型開發(fā)中,項(xiàng)目依次要經(jīng)歷需求開發(fā),、分析,、設(shè)計、編碼,、測試和集成發(fā)布階段,。從設(shè)計和編碼階段開始,就可以使用Maven來建立項(xiàng)目的構(gòu)建系統(tǒng),。在設(shè)計階段,,也完全可以針對設(shè)計開發(fā)測試用例,,然后再編寫代碼來滿足這些測試用例,。然而,有了自動化構(gòu)建系統(tǒng),,我們可以節(jié)省很多手動的測試時間,。此外,盡早地使用構(gòu)建系統(tǒng)集成團(tuán)隊(duì)的代碼,,對項(xiàng)目也是百利而無一害,。最后,,Maven還能幫助我們快速地發(fā)布項(xiàng)目。


     更多內(nèi)容:maven學(xué)習(xí)筆記之——目錄

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多