[網友來信] 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 這類「流程自動化」工具,多一點認識。如果你對這些工具好奇,還有問題想問的,歡迎留言在這一篇下面喔!
makefile教學 在 開源技術教學網opensourcedoc - GitHub 的推薦與評價
這是開源技術教學網的官方GitHub 帳號。 ... Makefile 1 · c-boilerplate-library Public. C Boilerplate Project to Build C Based Library. Makefile 3. ... <看更多>
makefile教學 在 基本的Makefile | 他山教程,只選擇最優質的自學材料 的推薦與評價
這是*Makefile 的*用武之地,makefile 允許我們為編譯程式編寫一組相當複雜的規則,然後通過在命令列輸入make 來編譯它。例如,這裡是上面的hello ... ... <看更多>
makefile教學 在 Makefile範例教學| Jason note 的推薦與評價
Makefile 和GNU make可能是linux世界裡最重要的檔案跟指令了。編譯一個小程式,可以用簡單的command來進行編譯;稍微複雜一點的程式,可以用shell script來幫忙進行編譯。 ... <看更多>