5五、Maven高級應用

基礎回顧: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>
相關文章
相關標籤/搜索