java技術學習筆記:Maven安裝和作用
Maven是一個基於專案物件模型(POM)的概念的純java開發的開源的專案管理工具。主要用來管理java專案,進行依賴管理(jar包管理,能自動分析專案所需的依賴軟體包,併到Maven倉庫區下載)和專案構建(專案打包和部署)。此外還能分塊開發,提高開發效率。
本文將從以下三個方面寫起:
1、Maven的作用
2、Maven的安裝配置
3、IDEA配置Maven
1、Maven的作用,為什麼要使用Maven
(1)建立專案,自動關聯和下載依賴的jar包。
(2)升級框架的版本。升級某個框架的版本,但卻不知道與它相關聯的哪幾個jar也需要跟著升級,和升級到哪個版本。
(3)自動部署。用Maven只需一個命令,就可以把專案自動部署到遠端伺服器上。
(4)專案編譯打包匯出。這個隨意一個IDE都能做到,所以如果要Maven做這件事,可能的場景,就是做沒有裝IDE的環境裡,比如在伺服器端Linux環境下。
2、Maven的安裝配置
1、下載maven 的地址:http://maven.apache.org/download.cgi
2、解壓,然後再"我的電腦"--右鍵--"屬性"--"高階系統設定"--"環境變數"中新增如下資訊:
a、新增變數MAVEN_HOME的值為Maven的安裝資料夾
b、在PATH變數中新增:%MAVEN_HOME%\bin
3、驗證配置是否成功,開啟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:釋出站點,生成報告等等,
3、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包的存活時間
取值說明:
1、provided:編譯和測試時需要
2、compile:編譯、測試、執行、打包需要
3、runtime:測試、執行、打包需要
4、test:測試
5、system:編譯和測試時需要,顯示引用,Maven不會檢索
更多技術分享,歡迎持續關注~