須要jar包時,先到本地倉庫中找,沒有就從中央倉庫去下載到本地倉庫。java
中央倉庫不少都在國外,下載速度慢。國內的一些公司在本身的服務器上搭建了maven倉庫(中央倉庫的鏡像),供內部人員使用,由於在公司私有的服務器上,因此又叫作私服。web
有的公司把本身的maven分享出來,免費供開發者使用,好比阿里雲的maven倉庫。api
若是使用了私服,須要jar包時,先到本地倉庫中去找,找不到再去私服上找,若是私服上沒有,就從中央倉庫下載到私服,再從私服下載到本地倉庫。tomcat
Maven用座標來惟一標識一個項目、依賴,座標由三部分組成:服務器
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
有時候會發生jar包衝突:jsp
好比寫代碼時須要jsp-api.jar包,否則request、response沒有提示、會顯示爲紅色,但debug、run部署到tomcat上時,tomcat自帶了jsp-api.jar,這2個jar包衝突了,項目不知道要引用哪一個jsp-api.jar。maven
可以使用<scope>給咱們本身引入的jsp-api.jar設置做用域,只在編輯代碼時有效(引用)。測試
scope可選的值:阿里雲
通常使用默認值compile便可(一直有效)。spa
在cmd下就能夠管理項目,先切換到項目的根文件夾:
這5個命令表明了項目的生命週期(Lifecycle)。
eg、我先將項目打包爲jar,以後修改了代碼,我執行install時,maven會自動先執行install以前的生命週期命令。
若是隻是將以前的jar安裝到本地倉庫,那我作的修改豈不是無效了?爲防止這種狀況發生,maven會自動調用以前生命週期的方法,來更新項目。
這就是maven的對項目的自動構建。你執行deploy,編譯、測試、打包、安裝、部署都給你弄了。
每一個命令都對應一個插件,執行命令實際是調用對應的插件來完成。
maven集成了tomcat插件,咱們直接直接將項目部署到tomcat中:
注意:每次使用tomcat後,須要先點擊中止,若是不點中止,直接從新部署、重啓tomcat,可能會出現端口占用、內存泄漏的問題。