1. 程式人生 > >Maven筆記 #01# 入門

Maven筆記 #01# 入門

一、Maven是幹什麼的?

我相信只要你寫過足夠多的程式碼,就... 肯定有思考過寫一個指令碼方便把專案自動打包成war並部署到伺服器;
肯定有思考過對於一個web專案用什麼樣的檔案結構才比較合適,怎麼樣才算得上是best practice;
也許還想過弄箇中心倉庫免去每次都要自己網上手動找包的麻煩 ...  - - - - - - - - - - - - - Maven正是一個做這些事情的工具。如果你真的嘗試做過上面的事情,那就很容易理解Maven了。 那麼自己弄和用Maven有什麼區別呢?借用《Maven程式設計實戰》裡的一個的比喻,建立高度自定義的構建系統(自己寫指令碼)就像買組裝PC,雖然其樂無窮,但是耗時費力,結果也不一定很好,並且實際專案中也不可能給你這麼多時間。使用Maven就像購買品牌PC,省時省力,而且直接就是best practice,還能得到Maven社群的大量支援 ...

二、用Maven的好處

個人覺得用Maven最大的好處在於兩個字:統一。具體的一些理由:

  1. 讓你在IDEA和Eclipse等各種整合環境中切換毫無壓力
  2. 方便大家合作寫程式碼,節約了學習成本,因為各種東西都已經約定、統一好了
  3. 並且這些約定還是best practice,不僅成熟、穩定,還好用!
  4. 資料多、支援多,隨便去GitHub上看Java專案,Maven結構的尤其多
  5. 騰出自己網上到處下jar包的時間,更多的時間做其它事情
  6. 自動化打包部署,有效減少滑鼠鍵盤的磨損度、緩解脫髮等不良症狀。。。
  7. 手動省略號。。。。

總之。Maven絕對是個懶人必備的工具。不過,在剛開始,你不得不花一點時間來適應、學習它(很快就會變成習慣!)。只需少許的時間就能掌握這樣一件神器,顯然非常划算。

三、Maven與命令列

跟著官方教程操作一遍差不多就好了。。稍微記錄一下↓

▲執行mvn package後得到jar包的實際結構(resource的位置):

▲哪裡找包:https://mvnrepository.com/

▲生成簡單java專案原型:

mvn -B archetype:generate \
  -DarchetypeGroupId=org.apache.maven.archetypes \
  -DgroupId=com.mycompany.app \
  -DartifactId=my-app

▲生成簡單java web專案原型:

mvn archetype:generate \
    
-DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-webapp \ -DgroupId=com.mycompany.app \ -DartifactId=my-webapp

四、Maven與IntelliJ IDEA

本來想寫點什麼,發現官網也準備好了。。feature-rich integration for Maven以及https://www.jetbrains.com/help/idea/maven-support.html

不過我覺得還是應該以命令列為主,整合環境裡的操作作為輔助,這樣即便換個環境也很快適應。

▲以圖表方式檢視專案依賴關係:

▲Maven怎麼和web開發結合可以參考這個:https://www.imooc.com/learn/587