[網友來信] Maven 該怎麼學?
這是昨天有一位網友問我的問題。由於我不太用 Maven,所以當初我回答那位網友是說:「抱歉,我不太用 Maven。可能無法回答您的問題。」但隨著時間過去,「好為人師」的個性,每分每秒都在譴責著我「居然沒回答學生問題!你算什麼老師?」(哈哈哈)所以,基於「良心不安」(?),雖然我自己不怎麼用 Maven,不過我還是上網花了 20 分鐘,找到我認為還可以的 Maven 教學文,推廣給有興趣的朋友:
http://mkn939.blogspot.tw/2013/03/maven-step-by-step.html
這是一個「系列文」,我轉貼的是該系列文的第一篇。裡面有整個系列每一篇的超連結,有興趣的朋友可以逐一點擊觀看之。
如果沒聽過 Maven 是什麼、有興趣瞭解的朋友,可以參考「維基百科」的說明:
http://zh.wikipedia.org/wiki/Apache_Maven
我也簡單說明一下 Maven:
Maven 是一個「軟體開發流程」的「自動化工具」。軟體開發流程包括:撰寫、編譯、測試、除錯、原始碼版本維護...等工作。這整套開發流程,就叫做這個軟體的「生命週期」。一般人會撰寫時下一些指令、編譯時下另外一些指令、測試/除錯/版本維護又是下另外一些指令。
如果你覺得每做一次修改,就得打一次這些相同(或類似)的指令很煩,希望有個「單鍵完成」的工具(打比方來說,就是在一頭放入一隻豬,按一個鈕,另一頭會出來一串香腸這樣的工具),那 Maven 就是你所追尋的。
Maven 可以讓你把每個流程輸入的指令,分門別類地記錄下來(當然,第一次還是要你用手工把它 Key 進去 :-) )。等於它有能力「模仿」你、把你每個流程打入的指令無限次「重現」。以後你只要一聲令下,就能把這一大堆指令,一口氣執行完畢。更棒的是,呼叫 Maven 時,可以從外部下一些小指令,客製化這些「每個流程要輸入的指令」的執行順序。因為軟體開發流程的「撰寫 --> 編譯 --> 測試 --> 除錯 --> 原始碼版本維護 --> ...」並非永遠依照固定順序執行、一成不變的。正因 Maven 可以彈性調整組合軟體開發過程中那一大堆鬼畫符般的指令,讓你不必背誦,它才會那麼受歡迎。
由於它與 Java 程式設計流程結合得最好,所以大部分是寫 Java 的人會用 Maven。寫 C 語言的人(像我)會比較習慣用 Makefile(另一種流程自動化工具,參考 http://zh.wikipedia.org/wiki/Make )。所以我才會跟那位用私訊問我 Maven 問題的網友說「抱歉!我比較少用 Maven」。
希望這樣的說明,有讓大家對 Maven、Makefile 這類「流程自動化」工具,多一點認識。如果你對這些工具好奇,還有問題想問的,歡迎留言在這一篇下面喔!
同時也有10000部Youtube影片,追蹤數超過62萬的網紅Bryan Wee,也在其Youtube影片中提到,...
「makefile是什麼」的推薦目錄:
makefile是什麼 在 04 makefile的第一個版本 - YouTube 的八卦

第1天:Linux基本命令,旨在屬性通過命令操作Linux系統第2天:vim編輯器、gcc、gdb、 makefile 、動/靜態庫製作使用第3天:文件IO常用函數、文件讀寫 ... ... <看更多>
makefile是什麼 在 Makefile的写法 - YouTube 的八卦
KMP字符串匹配算法1 · C Programming: Makefiles · Streaming Data into Snowflake with Decodable · Makefiles : 95% of what you need to know · Mix - ... ... <看更多>