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包配置)工具

相关文章
相关标签/搜索