Maven是一個基於項目對象模型(POM)的概念的純java開發的開源的項目管理工具。主要用來管理java項目,進行依賴管理(jar包管理,能自動分析項目所需的依賴軟件包,併到Maven倉庫區下載)和項目構建(項目打包和部署)。此外還能分塊開發,提升開發效率。java
本文將從如下三個方面寫起:web
一、Maven的做用apache
二、Maven的安裝配置服務器
三、IDEA配置Mavenapp
一、Maven的做用,爲何要使用Maven框架
(1)建立項目,自動關聯和下載依賴的jar包。webapp
(2)升級框架的版本。升級某個框架的版本,但殊不知道與它相關聯的哪幾個jar也須要跟着升級,和升級到哪一個版本。maven
(3)自動部署。用Maven只需一個命令,就能夠把項目自動部署到遠程服務器上。ide
(4)項目編譯打包導出。這個隨意一個IDE都能作到,因此若是要Maven作這件事,可能的場景,就是作沒有裝IDE的環境裏,好比在服務器端Linux環境下。工具
二、Maven的安裝配置
一、下載maven 的地址:http://maven.apache.org/download.cgi
二、解壓,而後再「個人電腦」--右鍵--「屬性」--「高級系統設置」--「環境變量」中添加以下信息:
a、新增變量MAVEN_HOME的值爲Maven的安裝文件夾
b、在PATH變量中添加:%MAVEN_HOME%\bin
三、驗證配置是否成功,打開cmd,輸入:mvn -version
Maven配置文件(settings.xml)具體說明
1.localRepository:設置本地倉庫:
<localRepository>C:\software\repository</localRepository>
2.pluginGroups:插件組合
3.proxies:代理
4.servers服務器(其中username和password是私服的用戶名和密碼,後續配置私服說明)
<server>
<id>user-releases</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>user-snapshots</id>
<username>admin</username>
<password>wangwujuan</password>
</server>
5.mirrors:鏡像路徑
<!-- 阿里鏡像 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
6.profiles:服務器配置
<!--服務器的配置-->
<profile>
<id>nexusProfile</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>
<!-- 插件倉庫,maven的運行依賴插件,也須要從私服下載插件 -->
<pluginRepository>
<!-- 插件倉庫的id不容許重複,若是重複後邊配置會覆蓋前邊 -->
<id>public</id>
<name>Public Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
<!-- java編譯插件,配jdk的編譯版本-->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
7.activeProfiles:激活私服
<activeProfiles>
<activeProfile>nexusProfile</activeProfile>
</activeProfiles>
Maven倉庫說明
存儲jar的倉庫(3種倉庫)
1.本地倉庫:存儲在本地磁盤,默認在系統盤c盤 用戶名/.m2/xx
經過settings.xml 更改本地倉庫localRepository
2.遠程倉庫:通常都使用國內鏡像或者公司本身搭建私服. 通常用Nexus
目的:加快下載速度
3.Maven(中央)倉庫:Maven團隊維護的jar包倉庫 http://repo1.maven.org/maven2/
通常用這個查POM:http://mvnrepository.com/
檢索順序:先檢索本地倉庫--再檢索遠程倉庫--最後檢索中央倉庫
Maven管理項目週期
1. Clean:項目構建前的清理操做
2. Default: 核心生命週期核心過程:編譯,運行,打包等等
3. Site:發佈站點,生成報告等等,
三、IDEA配置Maven
IDEA內部集成了Maven,也能夠配置成本身安裝的Maven
File ----> Settings ----> 找到Maven,配置Maven home directory
建立Maven項目
File ----> New ----> Project ----> Maven
勾選Create from archetype
選擇maven-archetype-webapp
點擊Next
輸入GroupId、ArtifactId點擊Next
選擇Maven的版本
輸入項目名稱和目錄,點擊Finish
建立項目後,點擊Import Changes按鈕,會下載須要的jar包和插件
Maven項目說明
src/main/java:存放項目的.java文件
src/main/resources:存放項目資源文件。如何Spring,Hibernate配置文件
src/test/java:存放全部測試的.java文件.如Junit測試類
pom.xml(maven項目核心配置文件)
pom.xml默認內容介紹:
<!-- maven中model的版本號 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司名稱或組織名稱或者我的名稱 -->
<groupId>com.sky</groupId>
<!--項目名稱 -->
<artifactId>FirstMaven</artifactId>
<!-- 版本號 -->
<version>1.0</version>
<!-- 打包方式 :項目類型
POM:MAVEN項目,經常使用在繼承和聚合上
JAR:JAVASE項目,沒有網頁,跟服務器不要緊
WAR:JAVAEE項目,跟服務器不要緊-->
<packaging>war</packaging>
Maven工程添加依賴
推薦網站:http://mvnrepository.com/
示例:
<dependencies>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
</dependencies>
添加到項目的pom文件內容說明(切換pom.xml到Dependencies目錄下):
type:類型
取值說明:
jar:jar包
Scope:聲明jar包的存活時間
取值說明:
一、provided:編譯和測試時須要
二、compile:編譯、測試、運行、打包須要
三、runtime:測試、運行、打包須要
四、test:測試
五、system:編譯和測試時須要,顯示引用,Maven不會檢索