Maven环境变量

1.什么是Maven

中文翻译成“专家”或“内行”。
maven是纯java语言编写的开源项目管理工具。
采用了POM(Project Object Model)项目对象模型的概念来管理项目,所有项目配置信息被定义在一个叫做pom.xml的文件中,通过pom.xml文件,Maven可以管理整个项目的生命周期,包括清除、编译、测试、报告、打包、部署等。
maven来源于apache。

总结:Maven是一个基于POM(项目对象模型)的Java项目管理工具,主要功能是统一开发规范与包的依赖管理。可以通过一小段配置文件来管理项目的构建、报告和文档的软件项目管理工具。

Maven官网:https://maven.apache.org/
(上官网了解maven的最新版本及如何下载maven)。

2.Maven功能

Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。

2.1.什么是项目构建?

在这里插入图片描述

2.2.什么是理想的项目构建?

高度自动化,跨平台,可重用的组件,标准化的

2.3.什么是依赖?为什么要进行依赖管理?

依赖是Maven中最关键的部分,我们之所以在工程中使用Maven,就是因为它的依赖管理功能。
自动下载,统一依赖管理,避免jar包引起的错误。

Maven 通过、与三个向量来定位Maven 仓库其jar 包所在的位置,并把对应的jar 包引入到工程中来。
举例:在pom.xml中引入MySQL数据库的依赖

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>compile</scope>
</dependency>

表示组织名,一般为域名,如com.xzy
表示项目名,如userManage
表示版本号

3、Maven有什么作用

管理项目的依赖(即管理项目中的包)
管理项目的生命周期
经常在导入jar包时没有成功,导致一些报错。

4.为什么使用Maven

使用开发工具?
手工操作较多,编译,测试,部署等工作都是独立的,很难一步完成。
每个人的IDE配置都不同,很容易出现本地代码换个地方编译就出错。
使用Ant?(也是项目管理工具,管理起来比Maven复杂)
没有一个约定的目录结构。
必须明确让ant做什么,什么时候做,然后编译,打包。
没有生命周期,必须定义目标及其实现的任务序列
没有集成依赖管理。
使用Maven?
拥有约定,知道你的代码在哪里,放到哪里去。
拥有一个生命周期,例如执行mvn install就可以自动执行编译,测试,打包等构建过程。
只需要定义一个pom.xml,然后把源码放到默认目录,maven帮你处理其他事情。
拥有依赖管理,仓库管理。
传统方式管理jar的问题
jar冲突
jar依赖,一些jar包会依赖其他的,你要自己去找要依赖哪些,麻烦
jar体积过大,框 架集成越多,jar包会越来越多
jar在不同阶段无法个性化配置,jar包在项目开发各阶段,使用不同,如JUnit在测试时用,上线了就不用了,要去掉,手动删就比较麻烦。
使用maven方式管理jar依赖的好处
解决jar冲突
解决ja依赖问题
jar文件不用在每个项目保存,只需要放在仓库即可。
maven可以指定jar的依赖范围

5.Maven的安装与配置

5.1.下载解压
apache-maven-3.5.x-bin.zip Windows版编译包(推荐)
apache-maven-3.5.x-src.zip Windows版源码包
apache-maven-3.5.x-bin.tar.gz Linux版编译包
apache-maven-3.5.x-src.tar.gz Linux版源码包

注意:
(1)解压后的maven不要存放在中文目录下。

解压目录:
/bin 命令
/boot 类加载器框架包
/conf 配置文件
/lib 运行需要的jar包
在这里插入图片描述

5.2.配置环境变量
目的:可以使用bin下面的命令。

环境变量配置:
5.2.1: MAVEN_HOME
5.2.2:M2_HOME
5.2.3: 修改path添加maven相关路径
配置方式跟jdk有些类似,环境变量MAVEN_HOME和M2_HOME的值为maven的根目录、
在这里插入图片描述然后在PATH环境变量里加入“%MAVEN_HOME%\bin;%M2_HOME%\bin;”即可!
在这里插入图片描述
5.2.4:在cmd下验证是否配置成功命令:mvn -version
在这里插入图片描述
这样子就说明成功了

6. 配置本地仓库

本地仓库:在本机上用于存储jar包的一个地方。

Maven会将项目工程中依赖的构件(jar包)从中央仓库或第三方仓库下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下:
在这里插入图片描述
一般我们会修改本地仓库位置,自己创建一个文件夹,在从网上下载一个拥有相对完整的所有jar包的结合,都丢到本地仓库中,然后每次写项目,直接从本地仓库里拿就行了。
在这里插入图片描述
修改“MAVEN_HOME\config”下的setting.xml文件,配置本地仓库。注意是:“E:/”而非“E:\”
在这里插入图片描述

F:\workspase\mvn_repository:是自己创建的本地仓库,将网上下载的所有jar包,都丢到该目录下,我们就可以直接通过maven的pom.xml文件直接拿。

6.1.配置阿里云仓库

<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

在这里插入图片描述
配置阿里云要注意的是要配置到标签里。

6.2.第三方仓库(私服)
第三方仓库,又称为内部中心仓库,也称为私服。一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可作为公用类库镜像缓存,减少在外部访问和下载的频率。(使用私服为了减少对中央仓库的访问)
私服可以使用的是局域网,中央仓库必须使用外网。
也就是一般公司都会创建这种第三方仓库,保证项目开发时,项目所需用的jar都从该仓库中拿,每个人的版本就都一样。
注意:连接私服,需要单独配置。如果没有配置私服,默认不使用。

6.3.中央仓库
Maven内置了远程公用仓库:http://repo1.maven.org/maven2。
但一般我们都在:http://www.mvnrepository.com/查找需要的jar包,进行下载。
这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主。
工程依赖的jar包如果本地仓库没有,默认从中央仓库下载。

7.Maven项目规约

7.1.Maven项目的一般创建
使用Maven创建项目,它会遵循一些规范和约束,比如用Maven搭建的项目,Maven对项目的目录结构进行一些约束,例如使用Maven创建一个Web项目时,项目的目录结构如下:

src/main/java存放项目的.java文件(开发源代码)
src/main/resources存放项目配置文件,如果没有配置文件该 项目可无,如spring.xml,Hibernate配置文件
src/main/webapp存放web项目资源文件(web项目才有,没有可创建)
src/test/java存放所有测试.java文件(测试源代码)
src/test/resources测试配置文件,如果没有配置文件该目录可无
target项目输出位置(可无)
pom.xmlmaven项目核心配置文件

注: 一个maven项目它的根目录下必定存在src文件夹和pom.xml

首先我们需要在eclipce配置maven对应的东西

在window ------> preferences ------>然后搜索maven,然后我们需要配置的就是Installations和User Settings

在这里插入图片描述
在这里插入图片描述
然后我们创建一个maven project,点击Next、然后目录要选择Internal,id选择webapp的,在Next
在这里插入图片描述

在这里插入图片描述

pom.xml:

<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.xzy</groupId>
	<artifactId>T224_maven</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>T224_maven Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>

		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
			<scope>provided</scope>
		</dependency>

	</dependencies>
	<build>
		<finalName>T224_maven</finalName>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>


	</build>
</project>

7.2.使用命令行模式与Eclipse模式创建Maven项目
创建java项目
命令行下执行:

mvn archetype:generate表示生成项目组件
DarchetypeCatalog=internal表示创建的是内部的项目
DgroupId=com.xzy表示组织(重)
DartifactId=hellojava表示项目名(重)
DarchetypeArtifactId=maven-archetype-quickstart表示使用的模板为java的模板
Dversion=0.0.1-snapshot表示版本(重)

在哪个目录下运行该命令,就会在目录下创建项目。

创建web项目
命令行下执行:
mvn archetype:generate
-DarchetypeCatalog=internal
-DgroupId=com.xzy
-DartifctId=helloweb
-DarchetypeArtifactId=maven-archetype-webapp 使用的模板为web的模板
-Dversion=0.0.1-snapshot
创建之后的项目目录与java项目有些不一样。

8.常用命令

mvn clean清除原来的编译结果(字节码文件)\删除target目录
mvn compile编译,将文件编译成字节码文件\ 在根目录下生成target目录
mvn test运行测试代码:mvn test -Dtest=类名 //单独运行测试
mvn package打包项目,将项目打包成jar或war包(看pom.xml中,一般java项目打包成jar包,web项目打包成war包,打包成功后会在target下面生成一个jar包或war包)\ mvn package -Dmaven.test.skip=true //打包时不执行测试
mvn install将项目打包并安装到本地仓库
mvn deploy发布到本地仓库或者服务器(私服)

先去到项目的根目录,再来操作上面的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值