Maven入門教程
1、maven簡介
Maven是一個項目管理工具
它包含:
一個項目對象模型 (Project Object Model)
一組標準集合
一個項目生命週期(Project Lifecycle)
一個依賴管理系統(Dependency Management System)
用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)的邏輯
項目結構:
源代碼放在src/main/java
源代碼的資源文件放在src/main/resources
測試代碼放在src/test/java
測試代碼的資源文件放在src/test/resources
以下圖所示:java
pom:
pom做爲項目對象模型。經過xml表示maven項目,使用pom.xml來實現。
主要描述了項目:包括配置文件;開發者須要遵循的規則,缺陷管理系統,組織和licenses,項目的url,項目的依賴性,以及其餘全部的項目相關因素。
結構詳解:
<parent>
......
<!-- 父項目的pom.xml文件的相對路徑。相對路徑容許你選擇一個不一樣的路徑。
默認值是../pom.xml。
Maven首先在構建當前項目的地方尋找父項 目的pom,
其次在文件系統的這個位置(relativePath位置),而後在本地倉庫,最後在遠程倉庫尋找父項目的pom。-->
<relativePath/>
</parent>
<!--項目產生的構件類型,例如jar、war、ear、pom。插件能夠建立他們本身的構件類型,因此前面列的不是所有構件類型-->
<packaging>jar</packaging>
<!--SCM(Source Control Management)標籤容許你配置你的代碼庫,供Maven web站點和其它插件使用。-->
<scm>
<!--SCM的URL,該URL描述了版本庫和如何鏈接到版本庫。欲知詳情,請看SCMs提供的URL格式和列表。該鏈接只讀。-->
<connection>
scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
</connection>
<!--給開發者使用的,相似connection元素。即該鏈接不單單隻讀-->
<developerConnection>
scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
</developerConnection>
<!--當前代碼的標籤,在開發階段默認爲HEAD-->
<tag/>
<!--指向項目的可瀏覽SCM庫(例如ViewVC或者Fisheye)的URL。-->
<url>http://svn.baidu.com/banseon</url>
</scm>
<resources>
<!--這個元素描述了項目相關或測試相關的全部資源路徑-->
<resource>
<!--是否使用參數值代替參數名。參數值取自properties元素或者文件裏配置的屬性,文件在filters元素裏列出。-->
<filtering/>
<!--描述存放資源的目錄,該路徑相對POM路徑-->
<directory/>
<!--包含的模式列表,例如**/*.xml.-->
<includes/>
<!--排除的模式列表,例如**/*.xml-->
<excludes/>
</resource>
</resources>
<!--當filtering開關打開時,使用到的過濾器屬性文件列表-->
<filters>
<filter>src/main/resources/filters/db/jdbc-${env}.properties</filter>
<filter>src/main/resources/filters/redis/redis-${env}.properties</filter>
<filter>src/main/resources/filters/rocketmq/rocketmq-${env}.properties</filter>
<filter>src/main/resources/filters/solr/solr-${env}.properties</filter>
<filter>src/main/resources/filters/zookeeper/zookeeper-${env}.properties</filter>
</filters>
<!--項目分發信息,在執行mvn deploy後表示要發佈的位置。有了這些信息就能夠把網站部署到遠程服務器或者把構件部署到遠程倉庫。-->
<distributionManagement>
<!--部署項目產生的構件到遠程倉庫須要的信息-->
<repository>
<!--是分配給快照一個惟一的版本號(由時間戳和構建流水號)?仍是每次都使用相同的版本號?參見repositories/repository元素-->
<uniqueVersion/>
<id>banseon-maven2</id>
<name>banseon maven2</name>
<url>file://${basedir}/target/deploy</url>
</repository>
<!--構件的快照部署到哪裏?若是沒有配置該元素,默認部署到repository元素配置的倉庫,參見distributionManagement/repository元素-->
<snapshotRepository>
<uniqueVersion/>
<id>banseon-maven2</id>
<name>Banseon-maven2 Snapshot Repository</name>
<url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>
</snapshotRepository>
<!--部署項目的網站須要的信息-->
<site>
<!--部署位置的惟一標識符,用來匹配站點和settings.xml文件裏的配置-->
<id>banseon-site</id>
<!--部署位置的名稱-->
<name>business api website</name>
<!--部署位置的URL,按protocol://hostname/path形式-->
<url>
scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
</url>
</site>
</distributionManagement>
項目座標:
GAV-->groupid(項目Id,通常爲包名),artifacId(項目名稱或模塊名稱),version(項目版本)。maven經過項目座標來發現項目併產生依賴。
2、maven安裝
2.一、下載:
下載地址:http://maven.apache.org/download.cgi#Installation
2.二、解壓縮,配置環境變量
2.三、驗證-->命令行窗口-->mvn -version。出現以下截圖,證實安裝成功。web
3、maven倉庫
中央倉庫
配置在org.apache.maven.model.pom4.0.0.xml,maven包中,能夠修改遠程倉庫地址
私有倉庫
通常是公司局域網內部搭建的私有服務器,用來存放公司所需jar文件。
搭建步驟:
安裝nexus,解壓縮
配置環境變量
執行nexus install,將nexus發佈成windows服務,控制面板能夠看見
修改安裝目錄/bin/jsw/conf下wrapper.conf,將Set the JVM executable下面的命令路徑修改成jdk安裝目錄\bin\java
使用nexus start啓動服務
啓動服務後經過瀏覽器輸入:localhost:8080/nexus訪問nexus
倉庫講解
hosted--內部項目的發佈倉庫
3rd part倉庫---第三方包發佈倉庫,這個一般是由內部人員下載以後執行發佈上去
release---內部模塊中release模塊的發佈倉庫
snashot---發佈內部快照模塊倉庫
proxy---從遠程中央倉庫尋找數據的倉庫
mirror鏡像
私有倉庫設置
一、更新私有倉庫索引或者下載索引,將其拷貝到中央倉庫的索引目錄中
二、設置鏡像
三、配置倉庫
本地倉庫
我的電腦或開發者電腦,可經過設置setting.xml指定jar文件的目錄
項目從本地服務器找,本地找不到去私有服務器找,私有服務器找不到去中央倉庫找。redis