Maven学习记录

1.Maven的简介

1.1简介

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

1.2项目构建

我们会发现,除了编写源代码,我们每天有相当一部分时间花在了编译,运行单元测试,生成文档,打包和部署等繁琐且不起眼的工作上,这就是构建。如果我们现在还手工这样做, 那成本也太高了,于是有人用软件的方法让这一系列工作完全自动化, 使得软件的构建可以像全自动流水线-样,只需要一条简单的命令,所有繁琐的步骤都能够自动完成,很快就能得到最终结果。

1.3项目构建工具
  • Ant构建
    最早的构建工具,基于IDE, 大概是2000年有的,当时是最流行java构建工具,不过它的XML脚本编写格式让XML文件特别大。对工程构建过程中的过程控制特别好
  • Maven [AVA]
    项目对象模型,通过其描述信息来管理项目的构建,报告和文档的软件项目管理工具。它填补了Ant缺点,Maven第一次支持了从网络上下载的功能,仍然采用xmI作为配置文件格式。Maven专注的是依赖管理,使用Java编写。
  • Gradle
    属于结合以上两个的优点,它继承了Ant的灵活和Maven的生命周期管理,它最后被google作为了Android御用管理工具。它最大的区别是不用XML作为配置文件格式,采用了DSL格式,使得脚本更加简洁。

2.Maven的四大特性

2.1依赖管理系统
  • Maven为Java世界引入了-个新的依赖管理系统jar包管理jar 升级时修改配置文件即可。在Java世界中,可以用groupld、artifactld、 version组成的Coordination (坐标) 唯一标识一 个依赖。
  • 任何基于Maven构建的项目自身也必须定义这三项属性,生成的包可以是Jar包,也可以是war包或者jar包。
  • -个典型的依赖引用如下所示: .
<dependency>
<groupId> javax . serv1et</ groupId>
com. baidu
<artifactId> javax. servlet-api </artifactId> ueditor echarts
<version>3.1.0</version>
</ dependency>
2.1.1坐标属性理解

Maven坐标为各种组件引入了秩序,任何-一个组件都必须明确定义自己的坐标。

  • groupld
    定义当前Maven项目隶属的实际项目公司名称。(jar包所在仓库路径) 由于Maven中模块的概念, 因此一个实际项目往往会被划分为很多模块。比如spring是- 个实际项目,其对应的Maven模块会有很多 ,如spring-core,spring-webmvc等。
  • artifactld
    该元素定义实际项目中的一个Maven模块-项目名,推荐的做法是使用实际项目 名称作为artifactld的前缀。比如: spring-bean, spring-webmvc等。
  • version
    该元素定义Maven项目当前所处的版本。
2.2 多模块构建

项目复查时dao service controller 层分离将一个项目分解为多个模块已经是很通用的一种方式。

在Maven中需要定义一个parent POM作为一-组module的聚合POM。在该POM中可以使用标签
来定义一组子模块。parent POM不会有什么实际构建产出。而parent POM中的build配置以及依赖配置都会自动
继承给子module.

2.3 一致的项目结构

Ant时代大家创建Java项目目录时比较随意,然后通过Ant配置指定哪些属于source, 那些属于testSource等。而Maven在设计之初的理念就是Conversion over configuration (约定大于配置)。其制定了一套项目目录结构作为标准的ava项目结构,解决不同ide带来的文件目录不一致问题。

2.4 一致的构建模型和插件机制
<plugin>
<groupId>org . mortbay . jetty</groupId>
<arti factId>maven-jetty-plugin</arti factId>
<version>6.1.25</versi on>
<confi gurati on>
<scanIntervalseconds> 10</scanIntervalseconds>
<contextPath>/test</contextPath>
</confi guration>
</plugin>

3.Maven的安装配置和目录结构

3.1Maven的安装配置

3.1.1检查JDK的版本

JDK版本在1.7以上

  • 通过 Windows + R 调出运行窗口在这里插入图片描述
  • 输入cmd,点击进入
    在这里插入图片描述
  • 输入java -version,按回车,得到版本信息在这里插入图片描述
3.1.2 下载Maven

下载地址:https://maven.apache.org/

选择Download在这里插入图片描述
选择版本下载
在这里插入图片描述
解压文件,但文件路径目录不能有中文或空格

3.1.3 配置Maven环境变量

打开控制面板->系统安全->系统,选择高级系统设置

在这里插入图片描述
点击环境变量在这里插入图片描述
点击新建,创建新的系统变量在这里插入图片描述
变量名(可以随意设置)为MAVEN_HOME
变量值导入文件地址在这里插入图片描述
然后再双击Path,在中Path新建添加%MAVEN_HOME%\bin在这里插入图片描述
在这里插入图片描述
进入命令台(windows+R,输入cmd)输入mvn -v
,如出现版本信息,则表示配置成功在这里插入图片描述

3.2认识Maven的目录结构

在这里插入图片描述
pom.xml文件包含该项目所有的jar包的依赖和插件的依赖

3.3Maven的编译与运行

3.3.1修改默认仓库位置和镜像

在这里插入图片描述

4.Maven命令

作为开发利器的maven,为我们提供了十分丰富的命令,了解maven的命令行操作并熟练运用常见的maven命令还是十分必要的,即使譬如IDEA等I具给我提供了图形界面化工具,但其底层还是依靠maven命令来驱动的。

命令格式:

mvn [p lugin-name] : [goa 1-name]

命令代表的含义:执行plugin-name插件的goal-name目标

4.1 Maven常用命令

在这里插入图片描述

4.2 命令参数

上面列举的只是比较通用的命令,其实很多命令都可以携带参数以执行更精准的任务。

4.2.1 -D 传入属性参数

例如:

mvn package -Dmaven. test. ski p=true

以-D开头,将maven. test . skip的值设为true ,就是告诉maven打包的时候跳过单元测试。同理,mvn deploy-Dmaven. test . skip= true代表部署项目并跳过单元测试。

4.2.2 -p 使用指定的Profile配置

profiles定义了各个环境的变量id,filters 中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值,resources 中是定义哪些目录下的文件会被配置文件中定义的变量替换。

通过maven可以实现按不同环境进行打包部署,例如:

mvn package -Pdev -Dmaven. test. ski p=true

表示打包本地环境,并跳过单元测试

5.Maven在IDEA的使用

5.1 常用配置

1.进入新项目设置界面
在这里插入图片描述
2.设置Maven的位置和镜像
在这里插入图片描述

5.2 Maven项目创建

5.2.1创建java项目

1.新建项目
在这里插入图片描述
2.项目结构
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值