maven基本基礎知識及命令學習-1
Maven概述:Maven是很有效的項目管理工具,maven是基於項目對象模型(POM),可以通過一小段描述信息來管理項目構建、報告和文檔的軟件項目管理工具。統一管理環境,架包等。
一 maven下載及環境配置
maven 依賴java的運行環境 在使用maven之前請下載安裝JDK並配置其環境。
maven下載 : http://maven.apache.org/download.cgi
下載後解壓到盤(D)的 根目錄
配置 :
1.在 環境變量 新建MAVEN_HOME
變量名:MAVEN_HOME
變量值:D:\apache-maven-3.5.0
2.在PATH中加入maven的 bin 目錄
%MAVEN_HOME%\bin
3.檢查是否配置成功
cmd 輸入 mvn -v
二 Maven核心知識:
1.Maven 項目目錄結構:
src
-main
-java
-package
-test
-java
-package
resources
pox.xml
2.常用的項目構建路徑
mvn -v 查看maven版本
compile 編譯
test 測試
package 打包項目
clean 刪除target文件和字節碼文件
install 把本項目的jar包安裝到本地倉庫中\
3.自動創建目錄骨架
兩種方式:
1>使用 mvn archetype:generate 按照提示進行選擇創建
2>使用 mvn archetype:generate -DgroupId=組織名,一般是公司網站的反寫+項目名
-DartifactId=項目名-模塊名
-Dversion=項目的版本號
-Dpackage=代碼所存在的包名
4.maven中的坐標和倉庫
坐標:構建,也是我們在pom.xml 文件中配置的信息(坐標)
倉庫:
本地倉庫:也就是本地conf/settings.xml指定配置的倉庫所在位置
遠程倉庫:maven的全球倉庫maven-model-builder-3.3.9.jar 裏 pom.xml:https://repo.maven.apache.org/maven2
鏡像倉庫:所謂鏡像就是a和b提供了一樣的功能
設置鏡像倉庫在conf/settings.xml 裏
<mirrors>
<mirror>
<id>maven.net.cn</id>
<mirrorOf>central</mirrorOf> 也可以是 * 匹配所有的倉庫
<name>central mirror in china</name>
<url>http://maven.net.cn/centent/groups/public</url>
</mirror>
<mirrors>
如果使用鏡像倉庫本地的倉庫將不能使用
更改本地倉庫的位置:settings.xml <localRepository>E:\mavendevelopment\m2\repository</localRepository>
5.maven的生命周期和插件
一個完整的項目構建過程包括:
清理, 編譯, 測試, 打包, 集成測試, 驗證, 部署
maven定義了三套相互獨立的生命周期:
clean: 清理項目,default: 構建項目,site: 生成項目站點
clean:清理項目
pre-clean:執行清理前的工作
clean:清理上一次構建生成的所有文件
post-clean:執行清理後的工作
default:構建項目主要有:
compile
test
package
install
site:生成項目站點
pre-site: 生成站點前要完成的工作
site: 生成項目的站點文檔
post-site: 生成項目站點後要完成的工作
site-deploy:發布生成的站點到服務器上
插件的使用:
如:source插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
6.pom.xml 解析 元素介紹:
搜索maven pom.xml 元素解析
<!-- 指定當前pom的版本 -->
<modelVersion>4.0.0</modelVersion>
<groupId>反寫的公司網站+項目名</groupId>
<artifactId>項目名+木塊名</artifactId>
snapshot //快照
alpha //內部版本
beta //公測版本
Release //穩定版本
<version>0.0.1SNAPSHOT</version>
打包是第後綴名,默認為jar, war zip pom
<packaging></packaging>
<name>項目描述名</name>
<url>項目地址</url>
<description>項目描述</description>
<developers></developers>
<licenses></licenses>
<organization></organization>
依賴: 依賴傳遞、 依賴範圍、 依賴沖突
依賴沖突: 1短路優先 A->B->C->X(jar)
A->D->X(jar)優先
2 先聲明先優先
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<type></type>
<scope>test</scope>依賴範圍 編譯 測試 運行
<optional></optional> 設置依賴是否可選
<exclusions>排除依賴傳遞列表
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<parent></parent>繼承
<modules><module></module></modules>批量幹什麽 聚合
tomcat7 配置:
<build>
<finalName>MyMavenPro</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8081</port>
<path>/MyMavenPro</path>
<uriEncoding>utf-8</uriEncoding>
<finalName>MyMavenPro</finalName>
<server>tomcat7</server>
</configuration>
</plugin>
</plugins>
</build>
運行時用命令:tomcat7:run
maven基本基礎知識及命令學習-1