Maven筆記 #01# 入門
阿新 • • 發佈:2018-11-13
一、Maven是幹什麼的?
我相信只要你寫過足夠多的程式碼,就... 肯定有思考過寫一個指令碼方便把專案自動打包成war並部署到伺服器;肯定有思考過對於一個web專案用什麼樣的檔案結構才比較合適,怎麼樣才算得上是best practice;
也許還想過弄箇中心倉庫免去每次都要自己網上手動找包的麻煩 ... - - - - - - - - - - - - - Maven正是一個做這些事情的工具。如果你真的嘗試做過上面的事情,那就很容易理解Maven了。 那麼自己弄和用Maven有什麼區別呢?借用《Maven程式設計實戰》裡的一個的比喻,建立高度自定義的構建系統(自己寫指令碼)就像買組裝PC,雖然其樂無窮,但是耗時費力,結果也不一定很好,並且實際專案中也不可能給你這麼多時間。使用Maven就像購買品牌PC,省時省力,而且直接就是best practice,還能得到Maven社群的大量支援 ...
二、用Maven的好處
個人覺得用Maven最大的好處在於兩個字:統一。具體的一些理由:
- 讓你在IDEA和Eclipse等各種整合環境中切換毫無壓力
- 方便大家合作寫程式碼,節約了學習成本,因為各種東西都已經約定、統一好了
- 並且這些約定還是best practice,不僅成熟、穩定,還好用!
- 資料多、支援多,隨便去GitHub上看Java專案,Maven結構的尤其多
- 騰出自己網上到處下jar包的時間,更多的時間做其它事情
- 自動化打包部署,有效減少滑鼠鍵盤的磨損度、緩解脫髮等不良症狀。。。
- (手動省略號。。。。)
總之。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