大家好,我是IT修真院上海分院第5期學員,一枚正直善良的JAVA程序員。
今天給大家分享一下,修真院官網JAVA任務1中,maven是什么,它和ant有什么區(qū)別?
一、背景介紹
軟件開發(fā)其實是一件很復雜的事情,是一個從0到1的過程,原始的軟件開發(fā)工作需要耗費大量的時間,同時極其的耗費腦力、精力。在這中情況下各種各樣的構建和框架就被程序員前仆后繼的開發(fā)出來,以減輕開發(fā)人員的工作量,提高開發(fā)效率。ant和maven就是這樣逐步出現的。下面是我從apache官網中將關于ant和maven的簡介的第一句話,復制下來,從這兩段話,就可以對ant和maven的區(qū)別有一個大概的了解。當然我個人認為,如果是要成為這方面的大牛,這兩款軟件還是有很多很深的知識需要了解,但如果只是平常工作的話,其實選擇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.
關于Ant--->Apache Ant is a Java library and command-line tool whose mission is to drive processes described inbuild filesas targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications.
二.知識剖析
1.maven&ant同屬apach是流行的構建工具。
都是為了簡化軟件開發(fā)而存在的。但是maven因為自身管理一個項目對象模型(project object model),這個模型其實就是抽象了一個項目的開發(fā)流程,它包含了一個項目的生命周期的各個階段,并將這個周期固定下來,這也就是約定大于配置。約定大于配置的意思就是,我maven將項目開發(fā)的各個階段固定起來了,每個文件的存放位置,每個階段要生成什么文件、保存為什么格式并且要把它放在什么位置,我都固定好了。我知道一個軟件是怎么開發(fā)出來,如果一個項目要使用maven,可以,但你要遵循我的規(guī)則,文件目錄不要亂建亂放,只有這樣maven才會將源碼用起來。這就是約定大于配置,因為maven已經將流程固定下來了,只要遵守約定,就不需要自己手動去配置了,這將大大地提高開發(fā)效率。
就像是開車一樣,只要知道點火、油門、方向、剎車,就可以將車子開東起來(當然出于安全和法律考慮,還是要考駕照的。),關于車子內部的傳動原理,電氣原理,工程原理,普通人并不需要了解多少,日常夠用就好了。這也是約定大于配置的一個例子。配置就是自己造一輛車去開,有必要,有能力,有時間嗎?
2.maven的中央倉庫和pom.xml文件。中央倉庫統(tǒng)一存放了開發(fā)用到的各種jar包,要用時只需要添加依賴到pom文件中,maven就會自動下載,當然為了方便一般會在本地建一個倉庫,減少下載時間。pom文件是maven的配置文件,maven就是通過管理pom文件和一些核心插件來管理項目。當然我前面將maven擬人化了,其實maven是沒有智力的,一切都是封裝好的流程,只是maven將很多操作隱藏起來了。
3.ant的build.xml文件。build文件是ant的配置文件,ant依靠它來執(zhí)行操作,與maven不同的是ant沒有固定一條程序鏈。你想要執(zhí)行什么操作以及操作之間的順序和依賴關系,都需要手動添加到build文件中,一點一滴都要寫清楚,否則ant就不會執(zhí)行。
4.maven和ant區(qū)別
Maven 擁有約定,只要遵守約定,它就知道你的源代碼在哪里。Maven 是聲明式的。你需要做的只是創(chuàng)建一個 pom.xml 文件然后將源代碼放到默認的目錄。Maven 會幫你處理其它的事情。Maven 有一個生命周期,當你運行 mvn install 的時候被調用。這條命令告訴 Maven 執(zhí)行一系列的有序的步驟,直到到達你指定的生命周期。缺點是運行許多默認目標。
而ant沒有約定,項目生命周期,它是命令式的。所有操作都要手動去創(chuàng)建、布置。甚至連build.xml文件都需要手動創(chuàng)建。
三.常見問題
1.maven和ant哪個更好?
四.解決方案
1.maven要方便許多,雖然日常工作各有不同,但其實都在maven的項目生命周期范圍內。就像雖然人類有很多人種,但是我們都一樣。
五。編碼實戰(zhàn)
七、參考文獻
http://maven.apache.org/
http://ant.apache.org/
maven 中文指南
八.更多討論
1.什么時候用ant比較好?
答:我現在是用不到,嬰兒級java選手,想那么遠干嘛,可以肯定的是很多牛X的人都在用maven。
2.maven需要深入學習嗎?
答:這個看情況,入門選手只需要能用maven的常用命令來做項目就好了,隨著水平的提高,對于maven肯定會用更高的要求和掌握。
3.我可以使用ant來構建項目嗎?
答:可以啊,如果你想自己體驗一個項目從零到一的過程的話,ant會幫你了解它。你不經需要編寫程序,還有編寫程序式的命令到build文件,告訴ant需要怎么一步一步做。不過不推薦,畢竟,工作不是一個人做的,而且日常工作也很少用到需要自己去構建項目。
詳見視頻
感謝大家觀看
今天的分享就到這里啦,歡迎大家點贊、轉發(fā)、留言、拍磚~
技能樹.IT修真院
“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節(jié)奏,學習的路上不再迷?!薄?/p>
這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧~