基礎回顧:apache
maven是一個項目管理工具。tomcat
maven的做用一:依賴管理:maven對項目中的jar包的管理過程。傳統項目咱們直接把jar包放置在項目中,maven工廠真正的jar包放置在倉庫中,項目中只會放置jar包的座標。maven
倉庫的種類:本地倉庫,遠程倉庫,中介倉庫工具
倉庫之間的關係:當咱們啓動一個maven工廠的時候,maven工程會經過pom文件中的jar包的座標去本地倉庫找對應的jar包。默認狀況下,若是本地沒有對應的jar包,maven工程會自動去中央倉庫下載jar包到本地倉庫。在公司中,若是本地沒有對應的jar包,會先從私服下載jar包(私服須要公司本身建立),若是私服沒有jar包,能夠從中央倉庫下載,也能夠從本地上傳。測試
maven的做用二:一鍵構建:maven自身集成了tomcat插件,能夠對項目進行編譯,測試,打包,安裝,發佈等操做,分佈對應maven的經常使用命令url
maven經常使用命令:clean,compile,test,package,install,deploy插件
maven三套生命週期:清理生命週期,默認生命週期,站點生命週期。代理
清理生命週期:Clean Lifecycle 在進行真正的構建以前進行一些清理工做code
默認生命週期:Default Lifecycle 構建的核心部分,編輯,測試,打包,部署等等server
站點生命週期:Site Lifecycle 生成項目報告,站點,發佈站點
注意:三套生命週期是相互獨立的。
maven解決jar包衝突
方式一:第一聲明優先原則:哪一個jar包等座標在靠上的位置,這個jar包就是先聲明的。先聲明的jar包座標下的依賴包,能夠優先進入項目中。
方式二:直接依賴:項目中直接導入的jar包,就是該項目的直接依賴包。傳遞依賴:項目中沒有直接導入jar包,能夠經過項目直接依賴的jar包傳遞到項目中去。路徑近者優先原則:直接依賴路徑比傳遞依賴路徑近,那麼最終項目進入的jar包會是路徑近的直接依賴jar包
方式三:直接排除:能夠經過<exclusions>標籤消除傳遞依賴jar包
工程的拆分和聚合:
拆分思想:maven把一個完整的項目,分紅不一樣的獨立模塊,這些模塊都有各自獨立的座標,哪一個地方須要其中的模塊,就直接引用該模塊的座標便可。
集合思想:把拆分零散的模塊聚合到一塊兒編寫一個完整的項目。
做用;解決代碼可重用和便於維護
工程和模塊的區別:
一、工程不等於完整的項目,模塊也不等於完整的項目,一個完整的項目看的是代碼,代碼完整,就能夠說這是一個完整的項目和此項目是工程和模塊沒有關係。
二、工程天生只能使用本身內部的資源,工程天生是獨立的,後天能夠和其餘工程或模塊創建關聯關係。模塊天生不是獨立的,模塊天生是屬於父工程的,模塊一旦建立,全部父工程的資源均可以使用
三、父子工程,子模塊天生集成父工程,能夠使用父工程全部的資源,子模塊之間天生是沒有任何關係的。
四、父子工程不用創建關係,繼承關係是先天的,不須要手動創建的,平級關係的引用叫依賴,依賴是須要後天創建的。
父子工程啓動方式:
第一種:父工程直接run
第二種:先install父工程,在啓動下面的模塊
第三種:添加本地tomcat啓動,添加工程啓動
私服:
一、下載安裝私服安裝包 Nexus https://www.sonatype.com/oss-thank-you-win64.zip
二、配置Nexus,在etc目錄下的nexus-default.properties配置Nexus端口、IP、上下文路徑
三、啓動服務
hosted:宿主倉庫(存放本公司開發的jar包(正式版本 測試版本 第三方:存在版權問題的-Oracle))
proxy:代理倉庫(代理中央倉庫,apache下測試版本的jar包)
group:組倉庫(未來鏈接組倉庫。包含Hosted:宿主倉庫,proxy:代理倉庫)
virtual:虛擬倉庫(被廢棄了的倉庫)
上傳Jar包到私服
一、在maven目錄下conf/setting.xml配置用戶名和密碼
<servers> <server> <id>releases</id> <!--宿主倉庫--> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id><!--宿主倉庫--> <username>admin</username> <password>admin123</password> </server> </servers>
二、在pom.xml中配置jar包的上傳路徑
<distributionManagement> <repository> <id>releases</id> <url>http://localhost:8081/nexus/repository/maven-releases</url><!--私服對應url--> </repository> <snapshotRepository> <id>snapshots</id> <url>http://localhost:8081/nexus/repository/maven-snapshots</url><!--私服對應url--> </snapshotRepository> </distributionManagement>
從私服下載Jar包
一、在maven目錄下conf/setting.xml配置模版
<profile> <!--profile的id--> <id>dev</id> <repositories> <repository> <!--倉庫id,repositories能夠配置多個倉庫,保證id不重複--> <id>nexus</id> <!--倉庫地址,即nexus倉庫組的地址--> <url>http://localhost:8081/nexus/repository/maven-public</url> <!--是否下載releases構件--> <releases><enabled>true</enabled></releases> <!--是否下載snapshots構件--> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <!--插件倉庫,maven的運行依賴插件,也須要從私服下載插件--> <pluginRepository> <!--插件倉庫的id不容許重複,若是重複後邊配置會覆蓋前邊--> <id>public</id> <name>Public Repositories</name> <url>http://localhost:8081/nexus/repository/maven-public</url> </pluginRepository> </pluginRepositories> </profile>
二、激活模版,在conf/setting.xml
<activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>