iT邦幫忙

DAY 8
1

於是我e路向前系列 第 8

小小上班族體驗生活part2_Maven

[上一篇在這]what's going on??

對於MVC架構有了基本的認識之後,接下來接觸到的就是"Maven project"。一開始很不能理解,project就project,Maven project有什麼特別不同的嗎?

Maven這個字在"意第緒語(Yiddish)"中是accumulator of knowledge,知識的累積的意思。一開始是為了簡化一個專案的開發而被設計出來,出發點是考慮到其實在現實開發環境中,時常會出現不同專案可以共用開發環境,痾...應該說他們需要的JAR檔其實是差不多的,或是只有些微的差異。然而,在還沒有這種工具出現之前,在每次開發專案時都要重新勾選需要的JAR檔,其實是有點費時而麻煩的動作。此外,在版本控制時不斷放入同樣的JAR檔,讓版本控制系統越來越笨重,Maven於是在解決這個問題的目的之下被建構出來,提供開發專案一個標準化的方法。

總之,根據Apache官網的說法,Maven的目的就是:(發現怎麼翻譯都有點不太到位,只好勞煩大家看一下原文了XD)
1. Making the build process easy
2. Providing a uniform build system
3. Providing quality project information
4. Providing guidelines for best practices development
5. Allowing transparent migration to new features

在Maven之前的工具是Ant,而Apache Maven則是基於便利的相依性管理,取代了Ant。前面提到為了解決JAR檔重複使用的需求,因此在Maven中,pom檔是最重要的設定檔,有個這個相依管理工具,只需要在設定檔中描述好相依那些函示庫,在Maven project第一次編譯時,會自動去網路上下載所需要的JAR檔。比起上述的方法,是不是方便很多呢?

所以說,標準化工具、以及便利的相依性管理,就是Maven最為人稱頌的地方了!然而,水能載舟、亦能覆舟,正是因為相依性太方便了,可能會遭開發者濫用,導致相依性混亂;還有,一開始要接觸這個plugin,真的不是很好上手阿...

繼Maven之後,Gradle好像是自動化編譯工具的後起之秀。但是,因為實習期間使用的是Maven,所以就只介紹到這裡了,有興趣了解更多的請自行請教估狗大神了!這邊只介紹一些概念和優點,畢竟相關的技術部分,只接觸了兩個月,我也不敢說我很懂,而且網路上還有更多的神人和好文存在,就不獻醜了...

參考網站:
http://maven.apache.org/what-is-maven.html
http://www.codedata.com.tw/java/understanding-gradle-2-maven/

====================================================

【每日一句】現在是過去的累積,你無法改變;但未來是由現在決定,我們都可以,一步一步踏實往前。 from 《天下讀者俱樂部》

跟昨天的有異曲同工之妙吧。無法改變過去了,就別再回頭了吧,美好、值得的經驗回憶都會帶在身上一起向前,把握當下的每分每秒,去創造更美好的「明天的自己」;每一步踏實紮實的努力,都讓之後回想時不會後悔!

[下一篇在這]keep going on...


上一篇
小小上班族體驗生活part1_MVC架構
下一篇
小小上班族體驗生活part3_SSH架構
系列文
於是我e路向前30

尚未有邦友留言

立即登入留言