Maven教程介绍及安装

Maven教程

1.Maven的介绍及安装
1.1 什么是Maven?
Maven是一个跨平台的项目管理工具。来源于Apache的开源项目。主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。

Maven的官网:
在这里插入图片描述
1.2 为什么需要Maven?
我们先看一下在Maven出现以前,软件是怎样开发的。
单体开发,团体开发,假如一个团体只开发一个组件呢?
出现的问题:

  • 同样的代码,因为在不同的机器或者不同的环境下编译不成功
  • 开发人员已经经过测试的代码, 测试和配置人员下载下来有问题
  • 新加入的团队成员不知道系统开发所需要的具体环境
  • 每次checkout项目的时候,随便都是几百M(大部分是jar包),头疼
  • 切换新项目时,我们要重新加入所依赖的jar包,而且又要上传到代码服务器
  • A项目组封装了一个好的组件(jar),推荐给其他项目组使用,当出现了错误,修正以后,每个项目组要重新替换
  • 测试人员每次测试都需要手动checkout版本。

Maven不是Java领域的唯一解决方案,还有IDE,Ant等。

1.2.1 IDE不是万能的
像Eclipse这类优秀的IDE大大的提高了开发效率,几乎覆盖开发需要的全部功能,包括代码编辑、调试、重构、编译。然而IDE还是有不足的地方
IDE依赖大量的手工操作。
IDE存在差异性,每个开发者都有自己个性化配置。

1.2.2 Ant
Ant可以看成一个Java版本的Make,也是一款非常优秀的构建工具。最早用于构建著名的Tomcat项目。但是Ant和Maven显著的区别 是,Ant是过程式的,Maven是声明式的。Ant可以理解为一种由xml定义的可扩展脚本语言。Ant脚本可以省去重复的劳动,Maven做得更绝, 可以省去劳动。
Ant最大的缺陷是没有依赖管理,需要借助Ivy来解决依赖管理。通过Ivy,Ant可以依赖Maven仓库里的构件,但是不了Maven原生实现的那么方便,特别是对于依赖范围的处理。

1.2.3 我们需要Maven
Maven是一款优秀的构建工具

我们一直在不停地需找避免重复的方法。设计的重复、编码的重复、文档的重复,当然还有构建的重复。Maven最大化的消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任务提供了已实现的插件,我们不需要定义过程,甚至不需要再去实现这些过程中的一些任务。

Maven不仅仅是构建工具

maven不仅是构建工具,还是一个依赖管理工具和项目管理工具。

依赖管理
几乎任何Java应用都会借用一些第三方的开源类库,这些类库通过依赖的方式引入进项目(就是项目之间引用jar包)。随着依赖的增多,版本不一致、版本冲突、依赖臃肿等问题会接踵而来。Maven提供了一个优秀的解决方案,通过坐标系统精确定位每一个构件(artifact)。

项目信息管理
maven把分散在各处的项目信息,包括项目描述、开发者列表、版本控制地址、许可证、缺陷管理系统地址等集中起来。Maven可以把这些信息生成 一个站点,用于开源项目的发布。通过一些插件,我们还可以轻松的获得项目文档、测试报告、静态分析报告、源码版本日志报告等有价值的项目信息。

中央仓库
maven为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何流行开源类库。通过一些衍生搜索工具,确定类库坐标后,Maven会帮我们自动下载构建,省去手工劳动。
Maven 中央仓库地址:

  1. http://www.sonatype.org/nexus/
  2. http://mvnrepository.com/ (本人推荐仓库)
  3. http://repo1.maven.org/maven2
  4. https://maven.java.net/content/repositories/public/

约定优于配置
Maven约定了项目目录结构、测试用例命名方法等内容。只要遵循这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本。

1.2.4 什么是项目的构建?
在企业团队开发中 ,我们一般会将代码统一保存在代码服务器(VVS/CVS/SVN/GIT)中,每次我们都需要从代码服务器下载最新代码–>项目构建->应用
如下图所示 : 项目构建包括如下几个过程

在这里插入图片描述
1.3 Maven的安装
官方网站:http://maven.apache.org
当前最新版本为3.6 本课程使用的版本为3.6
Maven本身是使用Java开发的工具,需要JDK的支持,建议1.7及以上
我们现在的环境是Maven3.5、JDK1.8。

Signature表示数字签名
Checksum是一种md5码的校验和生成工具
Link表面上理解就是连接的意思。

  • 将下载好的Maven压缩包,直接解压(目录最好不要有中文)。

在这里插入图片描述

  • 配置环境变量MAVEN_HOME
    在这里插入图片描述

  • 将%MAVEN_HOME%\bin加入Path中,记得后面写英文;
    在这里插入图片描述

  • cmd窗口,输入mvn –version 查看maven版本并验证maven环境变量的配置

在这里插入图片描述
1.3.1 Maven目录结构

  • bin:Maven运行的命令和脚本
  • boot:简单来说就是类似于JAVA的类加载器, Maven不要去关心
  • conf:此文件加包含maven全局的一个配置文件 settings.xml, 用来指定Maven全局的一些配置,比如:用于存放项目所需要的jar包的仓库地址/插件/代理的设置等信息,一般会有两个settings.xml,一个代表全局的配置,一个代表使用用户的个性配置, 代表用户特性的setttings.xml配置优先级大于全局配置文件.
  • lib:Maven运行时所需要的java类库

1.3.2 Maven的setting配置
全局的setting.xml配置
打开%MAVEN_HOME%/conf/settings.xml 是maven全局的配置文件。
如下图所示:默认配置的仓库地址为:${user.home}/.m2/repository

在这里插入图片描述

其中${user.home}表示当前用户路径C:\用户[系统用户]。

用户个性配置setting.xml
在实际的应用中,我们的本地仓库的地址一般不使用默认配置,通常情况下我们需要配置一个代表用户特性的setting.xml文件来配置新的仓库地址。

  • 新建一个本地仓库目录
    在这里插入图片描述

  • 修改用户个性的仓库的地址。

注意:
代表用户特性的setttings.xml配置优先级大于全局配置文件.

  • 如果我们要在开发工具中使用maven开发工具比如eclipse中集成maven以后,我们要将的maven的User setting设置成对应的用户个性配置文件。

国内仓库镜像的配置
为了解决访问速度的问题,而是用不同地方的服务器,制作相同的页面。
比如主站在北京,有两个镜像:上海(支持VIP)和广州,这样南方的朋友可以访问镜像站,加快访问速度。但是一般来说,都是主站更新比镜像站快,也频繁。
一般都是主站做得比较好,访问量很大的站点,才这样做。
http://repo.maven.apache.org/maven2在美国托管
http://uk.maven.org/maven2在英国。

在这里插入图片描述

alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central

1.4 创建Maven工程
Windows运行:mvn archetype:generate 就会生成下面的工程
Maven工程标准的目录结构如下:
ProjectName
|-src
| |-main
| | |-java -->>存放项目的.java文件
| | |-resources -->>存放项目资源配置文件
| |-test
| |-java -->>存放所有测试.java测试文件 JUnit测试类
| |-resources -->>测试所需要的资源文件
|-target -->>目标文件输出位置例如.class、.jar、.war文件
|-pom.xml -->>maven项目核心配置文件

1.4.1 根据maven的目录结构手动创建Maven工程

在这里插入图片描述

建立项目的骨架。
在这里插入图片描述
项目的坐标 :
开始啥数字就是啥数字
groupId 用来表示组织/公司的名称 com.tz
artifactId 用来表示项目的模块名称 maven01
version 用来表示项目的版本 就用1.0
Package com.tz.maven01

在这里插入图片描述
在这里插入图片描述

进入maven01目录后
Mvn compile
Mvn test

1.4.2 Maven命令
1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
不会在仓库中生成jar。只是在本地的workspace里面。

5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用,不会发布到私服里面。

6、mvn deploy–>发布(发布到私服上面),会在workspace里面生成,会在本地仓库生成还会发布到私服里面

mvn clean -->表示运行清理操作(会默认把target文件夹中的数据清理)
mvn clean compile–>表示先运行清理之后运行编译,会见代码编译到target文件夹中
mvn clean test–>运行清理和测试
mvn clean package–>运行清理和打包
mvn clean install–>运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用
mvn clean deploy–>运行清理和发布(发布到私服上面)

1.5 在Eclipse下配置Maven
1 , Windows -> Preference(首选项)
2 , Maven -> Installations

在这里插入图片描述
3, Maven -> User Settings
在这里插入图片描述
分别是指配置文件的位置和本地库的位置。

在这里插入图片描述

4 , settings.xml文件的配置

在这里插入图片描述

在这里插入图片描述

alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central repo2 central Human Readable Name for this Mirror. http://repo2.maven.org/maven2/ ui central Human Readable Name for this Mirror. http://uk.maven.org/maven2/ ibiblio central Human Readable Name for this Mirror. http://mirrors.ibiblio.org/pub/mirrors/maven2/ jboss-public-repository-group central JBoss Public Repository Group http://repository.jboss.org/nexus/content/groups/public

分别演示建一个jar工程和一个war工程。
1.6 在Eclipse中导入maven项目

演示怎样导入一个maven工程。
在这里插入图片描述
1.7创建maven工程
创建java项目

在这里插入图片描述
创建web工程

在这里插入图片描述
执行maven build命令
在这里插入图片描述

1.8报错

解决:
或者右键项目updata。。。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值