maven基礎概念學習1

 

1.maven是什麼?web

百度百科:spring

Maven是基於項目對象模型(POM),能夠經過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具數據庫

2.maven的做用?apache

構建、文檔、報告、依賴、scms、發佈、分發,能夠方便的編譯代碼、進行依賴管理、管理二進制庫等等。spring-mvc

3.maven的好處?
緩存

目前我使用下來的好處tomcat

     1.關於項目構建   很清晰,我目前的項目分的比較簡單 project-pom,project-intf,project-service,project-web,project-web-inmvc

       project-pom 是父類pom,存了一些配置文件(開發,測試,生產),server的配置文件tomcat,統一tomcat配置框架

       project-intf  第三方接口交互maven

       project-service 系統dao,service

       project-web 前臺

       project-web-in 後臺 

        之前沒用maven前臺和後臺共用service,要寫2套攔截,如今單獨的項目,單獨的攔截,分的很清晰

   2.關於文檔  暫時沒用到

   3.關於報告  暫時沒用到

   4.關於依賴 maven自動會幫你下載關聯的jar包-source包,這點很好,以前若是本身放到lib下,假設,spring-mvc須要3個        包,須要本身一個一個去下,如今直接依賴spring-mvc,系統自動下載其餘的jar,包括source.jar

    5.關於發佈  未用maven以前,由於生產、測試、開發環境 數據庫配置、圖片存儲、文件存儲、接口都不同,因此每次打        包都須要手動改,每次發佈配置文件都有可能出錯,用了maven profile以後,只須要mvn package -P dev 不一樣的環境        就ok

    6.關於編譯    經過指定maven插件的complier版本,能夠指定項目的編譯,運行環境,例如我指定pom的jdk爲1.6,那繼          承他的幾個子項目都是這個版本,統一開發、編譯環境

    7.關於archetype 這個我我的比較喜歡,能夠實現基礎框架,相似代碼生成器,能夠把基礎的配置,環境生成好

    

下面總結一下,maven的具體一些概念

    1.maven的座標 GAV

   groupId: 定義當前maven項目所屬的實際項目,maven項目和實際項目不必定是一對一的關係,好比springframework,對應的maven項目有不少,例如spring-core,spring-context等

   所以,一個項目每每會被劃分爲不少模塊。groupId一般域名相反,好比 org.springframework 下面有個spring項目,那groupId定義爲org.springframework.spring,域名是

  spring.springframework.org

artifactId:該元素定義的是實際項目中的一個maven項目或者模塊,推薦的是使用實際項目做爲前綴,好比spring-webmvc

version:版本號。

packaging:包的類型,通常都是jar,也能夠是war之類的。若是不填,默認就是jar。

nameurl,一個是名稱,一個是maven的地址。主要就是上面的幾個參數。


maven的安裝,不寫了,很簡單


關於maven的配置文件,我把默認的備份,將我用到的整理以下:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

<!--本地倉庫-->
<localRepository>d:/soft/maven/rep/m2</localRepository> 

<!--鏡像-->
<mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>     
      <url>http://localhost:8081/nexus/content/groups/public/</url>
    </mirror>     
  </mirrors>  

<!--本地nexus的用戶名 密碼-->
  <servers>
  <server>    
     <id>releases</id>    
     <username>admin</username>    
     <password>admin123</password>    
   </server>    
   <server>    
     <id>snapshots</id>    
     <username>admin</username>    
     <password>admin123</password>    
   </server>
   </servers>

  
  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>nexus</id>
          <name>Nexus</name>
          <url>http://localhost:8081/nexus/content/groups/public/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>nexus</id>
            <name>Nexus</name>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

<!--啓用名稱爲nexus的私服 -->
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

maven的倉庫只有兩大類:1.本地倉庫 2.遠程倉庫,在遠程倉庫中又分紅了3種:2.1 中央倉庫 2.2 私服 2.3 其它公共庫

1.本地倉庫,顧名思義,就是Maven在本地存儲構件的地方。

注:maven的本地倉庫,在安裝maven後並不會建立,它是在第一次執行maven命令的時候才被建立

maven本地倉庫的默認位置:不管是Windows仍是Linux,在用戶的目錄下都有一個.m2/repository/的倉庫目錄,這就是Maven倉庫的默認位置

如何更改maven默認的本地倉庫的位置:這裏要引入一個新的元素:localRepository,它是存在於maven的settings.xml文件中

1.1 更改配置用戶範圍的本地倉庫:先在/.m2/目錄下建立settings.xml文件,而後在~/.m2/settings.xml,設置localRepository元素的值爲想要的倉庫地址

2. 遠程倉庫

2.1 說到遠程倉庫先從 最核心的中央倉庫開始,中央倉庫是默認的遠程倉庫,maven在安裝的時候,自帶的就是中央倉庫的配置

在maven的聚合與繼承中咱們說過,全部的maven項目都會繼承超級pom,具體的說,包含了下面配置的pom咱們就稱之爲超級pom

  1. <repositories>  

  2.     <repository>  

  3.       <id>central</id>  

  4.       <name>Central Repository</name>  

  5.       <url>http://repo.maven.apache.org/maven2</url>  

  6.       <layout>default</layout>  

  7.       <snapshots>  

  8.         <enabled>false</enabled>  

  9.       </snapshots>  

  10.     </repository>  

  11.   </repositories>  

私服是一種特殊的遠程倉庫,它是架設在局域網內的倉庫服務,私服代理廣域網上的遠程倉庫,供局域網內的Maven用戶使用。當Maven須要下載構件的時候,它從私服請求,若是私服上不存在該構件,則從外部的遠程倉庫下載,緩存在私服上以後,再爲Maven的下載請求提供服務。咱們還能夠把一些沒法從外部倉庫下載到的構件上傳到私服上。

<mirrorOf>的值爲central,表示該配置爲中央倉庫的鏡像任何對於中央倉庫的請求都會轉至該鏡像,用戶也可使用一樣的方法配置其餘倉庫的鏡像。另外三個元素id,name,url與通常倉庫配置無異,表示該鏡像倉庫的惟一標識符、名稱以及地址。相似地,若是該鏡像需認證,也能夠基於該id配置倉庫認證

關於鏡像的一個更爲常見的用法是結合私服。因爲私服能夠代理任何外部的公共倉庫(包括中央倉庫),所以,對於組織內部的Maven用戶來講,使用一個私服地址就等於使用了全部須要的外部倉庫,這能夠將配置集中到私服,從而簡化Maven自己的配置。在這種狀況下,任何須要的構件均可以從私服得到,私服就是全部倉庫的鏡像。這時,能夠配置這樣的一個鏡像,如例: 

    1. <settings>  

    2.   ...  

    3.   <mirrors>  

    4.     <mirror>  

    5.       <id>internal-repository</id>  

    6.       <name>Internal Repository Manager</name>  

    7.       <url>http://localhost:8081/nexus/content/groups/public/</url>  

    8.       <mirrorOf>*</mirrorOf>  

    9.     </mirror>  

    10.   </mirrors>  

    11.   ...  

    12. </settings>  

該例中<mirrorOf>的值爲星號表示該配置是全部Maven倉庫的鏡像,任何對於遠程倉庫的請求都會被轉至http://localhost:8081/nexus/content/groups/public/

maven 基礎記錄完了



有問題,聯繫我 91559999或者jdk2010@163.com

相關文章
相關標籤/搜索