1. 程式人生 > >maven基本基礎知識及命令學習-1

maven基本基礎知識及命令學習-1

packaging 本地 結構 images cut 字節碼 倉庫 鏡像倉庫 apache

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