一篇让你maven原理快速入门

maven

what is maven?

是一个项目管理工具,可以对Java项目进行构建、依赖管理。

why maven?

在传统的项目当中,如果没有maven,会有以下几个弊端

  1. 模块之间的关系需要手动管理
  2. 第三方功能需要的jar文件,需要手动下载
  3. jar文件的版本问题
  4. jar文件的版本依赖问题

maven的功能

  1. 管理jar文件
  2. 自动下载jar文件
  3. 管理jar的依赖,如果要使用的jar文件有依赖的jar文件,maven会自动下载
  4. 管理jar版本
  5. 编译程序 java-> class
  6. 测试代码是否正确
  7. 打包文件为jar 或者war文件
  8. 部署项目

项目的构建

构建是面向过程的,就是一些步骤,完成项目代码的编译、测试、运行、打包、部署等。

maven支持的构建有:

  1. 清理,把之前的项目编译的东西删除,为新的编译代码做准备
  2. 编译,把程序源代码批量的编译为执行代码(可以同时很多,javac一次只能编译一个)
  3. 测试,可以批量测试程序代码
  4. 报告,生成测试结果文件
  5. 打包,把项目中所有的class文件、配置文件放到一个压缩文件当中。这个压缩文件就是项目的结果文件,java程序为.jar,web程序是.war
  6. 安装,将5中生成的文件jar,war安装到本机仓库
  7. 部署,把程序安装好就可以执行

Maven的主要作用

  1. 管理依赖
  2. 构建项目

安装&配置

从官网下载。

解压安装包到一个非中文的目录下面。

进行环境变量的配置:

  1. 新建一个系统变量
  2. 再将其放到Path当中 %M2_HOME%\bin

mvn -v检测是否安装成功(注意是要再Java安装好的前提下)

因为maven官方提供的服务器在国外比较慢,在国内可以使用阿里云的下载地址。

打开maven安装包conf文件下面的settings.xml在mirrors下新加一个阿里云的镜像地址:

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

Maven需要了解的概念

  1. POM(项目对象模型):通过pom.xml文件进行管理。maven把一个项目当作一个模型使用。可以控制maven构建项目的过程,管理jar依赖。
  2. 约定的目录结构:maven项目的目录喝文件的位置都是规定的。
  3. 坐标:是一个唯一的字符串,用于表示资源的。
  4. 依赖管理:管理项目可以使用jar文件的。
  5. 仓库管理(了解):资源存放的位置
  6. 生命周期(了解):maven工具构建项目过程。
  7. 插件和目标(了解):执行maven构建的时候用的工具是插件
  8. 继承
  9. 聚合:好几个项目归纳到一起

Maven的约定目录结构

每一个maven项目中都是一个文件夹

项目名称/

—/src

------/main #主程序java代码和配置文件

---------/java #程序包和包中的java文件

---------/resources #java程序中要使用的配置文件

------/test #当测试程序代码和文件(可以没有)

---------/java #测试程序包和包中的java文件

---------/resources #j测试ava程序中要使用的配置文件

—/pom.xml #maven的核心文件(必须有)

Maven仓库

仓库的定义

存放maven使用的jar(插件)和项目使用的jar(第三方的工具)

仓库的分类

本地仓库

个人计算机上的文件夹,存放各种jar。

maven工具执行的操作需要很多的jar文件(插件)完成,这些插件在编译的时候,如果没有会自动下载,下载之后默认存放到本地仓库当中。

如果要更改本地仓库的位置

在安装包下的conf下打开settings.xml文件,修改localRepository

<localRepository>E:/myapp/maven/repository</localRepository>

拿出注释之后修改

远程仓库

联网才能使用的仓库

中央仓库

最权威的,所有的开发人员都共享使用的一个集中仓库。

中央仓库的镜像
私服

在公司内部,局域网中使用,不对外。

仓库的使用

maven仓库的使用不需要人为的参与。

如果开发人员需要使用mysql驱动——>maven首先查找本地仓库 ——>如果本地仓库没有则访问私服——> 如果私服没有 就访问镜像——>都没有就访问中央仓库。

POM(核心)

基本信息

modelVerion: Maven模型的版本

groupId:组织id,一般是公司域名的倒写

artifactId:项目名称

version:项目版本号

packaging:项目打包的类型,默认是jar包,web是.war

坐标

唯一值,在互联网中唯一标识一个项目的

公司域名的倒写

自定义项目名称

自定版本号

在中央仓库当中,可以使用groupId或者artifactId作为搜索条件

坐标用于搜索

依赖(dependency&dependencies)

项目中要使用的各种资源的说明

<dependencies>
	<dependency>
		<groupId>mysql</groupId>
		<artifactId></artifacyId>
		<version></version>
	<dependency>
</dependencies>

属性(properties)

用于定义一些配置属性的。

构建(build)

build表示与构建相关的配置,比如这是编译插件的jdk版本

生命周期

maven的生命周期就是maven构建项目的过程。

maven独立使用,通过命令完成maven的生命周期的执行。

maven命令执行时,真正完成功能的时插件

常用命令

mvn clean 清理,会删除target目录,但是install进仓库中的包不会删除

mvn compile 编译,会产生一个target

mvn test-compile 编译测试程序

mvn test 测试,生成一个目录surefire-reports,用于保存测试的结果

mvn package 打包主程序,按照pom.xml配置把主程序打包为jar或者war包,只会打包main下面的内容,test下面的不打包

mvn install 安装主程序,把本工程打包,并且按照本工程的坐标保存到本地仓库中,别人可以用了

mvn deploy 部署主程序,把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中,还会自动把项目部署到web容器中

**以上命令要在pom.xml所在目录下执行

配置插件(plugin)

<!--配置插件-->

<plugins>

	<!--配置具体插件-->
	<plugin>
		<groupId></groupId>
		<!--插件的名称-->
		<artifactId></artifacyId>
		<!--插件的版本-->
		<version></version>
		<!--配置插件的信息-->
		<configuration> 
			<source></source>
			<target></target>
		</configuration>
	</plugin>
</plugins>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值