Maven系列(一):Maven簡介

Maven是什麼?

Maven在Apache官網的解釋爲:Maven是基於項目對象模型(POM即Project Object Model),能夠經過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。
經過上面這句話,咱們能夠了解到Maven不單單能夠管理項目的構建,並且能夠根據項目源碼自動生成文檔,以及報告。包括測試報告,測試覆蓋率報告等等。。html

Maven的目標

Maven的主要目標是爲了使開發人員在最短的時間內瞭解項目的全部狀態。爲了達到這一目標,Maven考慮如下五個方面的內容:
一、使得構建過程更加容易,方便編譯,打包,發佈
二、爲每一個項目提供統一的配置
三、提供優質項目信息
四、最佳開發實踐
五、安裝和更新第三插件透明化
 spring

Maven的安裝和配置(推薦百度Maven安裝教程

一、進入官網下載最新版本壓縮包     官網地址:http://maven.apache.org/
二、解壓到指定目錄,如d:\maven
三、配置環境變量     
M2_HOME = D:\maven\apache-maven-3.*.*     
MAVEN_OPTS = -Xms128m -Xmx512m(可選)
四、在path變量末尾加入「%M2_HOME%\bin;」,保存退出
五、在cmd界面中輸入mvn -v測試是否安裝成功
 apache

瞭解Maven倉庫

使用Maven給咱們帶來的最直接的好處,就是統一管理jar包,它們就保存在本地倉庫中,默認地址位於C:\Users\用戶名.m2目錄下(這個默認地址能夠修改,看教程
在沒有私服的狀況下,Maven會從遠程倉庫中查找所需的jar包並下載到本地倉庫之中。
在有私服的狀況下,Maven會先檢查本地倉庫中是否存在所需jar包,若是沒有則會到私服中查詢是否存在所需jar包,若是存在則從私服中下載到本地倉庫之中,若是沒有則會到遠程倉庫中查詢,若是遠程倉庫中存在所需jar包,則會先把jar包下載到私服之中,而後再從私服中下到本地倉庫,這樣下次其餘機器須要下載一樣的jar包時就能夠直接從私服中下載了。

 maven

配置項說明

maven項目中pom.xml配置說明:ide

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<!-- 組織機構 -->
	<groupId>com.xzq</groupId>
	<!-- 項目身份標識 -->
	<artifactId>test</artifactId>
	<!-- 版本號 -->
	<version>1.0-SNAPSHOT</version>
	<!-- 項目名稱 -->
	<name>test</name>
	<!-- 打包類型 有pom、war、jar等類型 -->
	<packaging>pom</packaging>

	<!-- 子項目配置 -->
	<modules>
		<!-- 子項目身份標識 -->
		<module>test-Common</module>
	</modules>

	<!-- 屬性配置 -->
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<!-- 自定義屬性,能夠用於依賴包版本控制。在配置文件中使用${junit.version}調用 -->
		<junit.version>4.12</junit.version>
	</properties>

	<!-- 父項目配置 -->
	<parent>
		<!-- 父項目組織機構標識 -->
		<groupId>org.springframework.boot</groupId>
		<!-- 父項目項目標識 -->
		<artifactId>spring-boot-starter-parent</artifactId>
		<!-- 父項目版本號 -->
		<version>1.3.8.RELEASE</version>
	</parent>

	<!-- 公共依賴配置 -->
	<dependencies>
		<!-- 依賴配置 -->
		<dependency>
			<!-- 組織機構標識 -->
			<groupId>junit</groupId>
			<!-- 項目標識 -->
			<artifactId>junit</artifactId>
			<!-- 版本號 -->
			<version>${junit.version}</version>
			<!-- 做用域 取值有(compile(默認)\provided\runtime\test\system) -->
			<!--compile(默認) 表示 dependency 均可以在生命週期中使用。並且,這些dependencies 會傳遞到依賴的項目中。適用於全部階段,會隨着項目一塊兒發佈-->
			<!--provided     表示dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。這個scope 只能做用在編譯和測試時,同時沒有傳遞性-->
			<!--runtime      表示dependency不做用在編譯時,但會做用在運行和測試時,如JDBC驅動,適用運行和測試階段-->
			<!--test         表示dependency做用在測試時,不做用在運行時。 只在測試時使用,用於編譯和運行測試代碼。不會隨項目發佈-->
			<!--system       跟provided 類似,可是在系統中要之外部JAR包的形式提供,maven不會在repository查找它-->
			<scope>test</scope>
		</dependency>

	</dependencies>

	<!-- 構建項目須要的信息 -->
	<build>
		<!-- 使用的插件列表 -->
		<plugins>
			<!-- plugin元素包含描述插件所須要的信息 -->
			<plugin>
				<!-- 插件在倉庫裏的group ID -->
				<groupId>org.apache.maven.plugins</groupId>
				<!-- 插件在倉庫裏的artifact ID -->
				<artifactId>maven-compiler-plugin</artifactId>
				<!-- 插件的版本 -->
				<version>3.1</version>
				<!-- 做爲DOM對象的配置 -->
				<configuration>
					<!-- 做爲DOM對象的配置 -->
					<source>1.7</source>
					<target>1.7</target>
					<compilerArgs>
						<arg>-XDignore.symbol.file</arg>
					</compilerArgs>
					<fork>true</fork>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<!-- 私有倉庫位置 -->
	<repositories>
		<repository>
			<id>nexus</id>
			<name>Maven Proxy Repository</name>
			<url>http://192.168.0.43:8081/nexus/content/repositories/central</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>nexus 3rd</id>
			<name>3rd party Repository</name>
			<url>http://192.168.0.43:8081/nexus/content/repositories/thirdparty</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>nexus plugin</id>
			<name>Maven Proxy Plugin Repository</name>
			<url>http://192.168.0.43:8081/nexus/content/repositories/central</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>
</project>


想了解更多配置請查閱相關文檔。spring-boot

推薦連接:

史上最全的pom.xml文件詳解:http://www.zuidaima.com/share/1781583829978112.htm
Maven官方資源庫:http://repo2.maven.org/maven2/
Maven依賴查詢:http://mvnrepository.com/(能夠查詢所需依賴的jar包配置)工具

相關文章
相關標籤/搜索