导学

Maven是一个项目管理工具,在之前的课程中,我们一个项目使用了多个jar包,这对于我们来说是比较麻烦的,不同的jar包之间可能相互依赖,也有可能产生冲突。在这种情况下,如何去保证我们的jar包使用正确呢?Maven就能极好的解决这个问题。
在本节课程中,需要掌握Maven的核心特性,依赖管理以及打包方式。

Maven介绍

Maven介绍:

  • Maven是项目管理工具,对软件项目提供构建和依赖管理
  • Maven是Apache下的Java开源工具
  • Maven是Java项目提供了统一的管理方式,已成为业界标准

    日常开发痛点:

    1. 不同的IDE之间创建的项目结构不同,是不能互通的,eclipse中创建的项目就不能拿到idea中运行。
    2. 一个Java软件需要多种Jar包支持,到处下载很麻烦。
    3. 一个Java项目打包无外乎jar包与war包,如何采用一个更统一更方便的方式呢?

Maven核心特性:

  • 项目设置遵循统一的规则,保证不同开发环境的兼容性
  • 强大的依赖管理,项目依赖组件自动下载、自动更新
  • 可扩展的插件机制,使用简单,功能丰富

    maven的安装与配置

    首先需要安装和配置好jdk!
    maven是由Java所编写的一款软件,所以需要先安装好jdk。
    下载地址:http://maven.apache.org/
    2.Maven - 图1
    下载完成后,解压。并将bin目录添加到系统环境变量path中。
    打开cmd,输入mvn -version,出现如下画面就成功了。
    2.Maven - 图2
    修改默认仓库
    maven默认将C盘作为下载Jar包后存放的仓库,为了节约C盘空间需要修改maven的仓库。
    找到conf文件夹下的conf目录,打开setting.xml文件
    2.Maven - 图3
    改为:
    2.Maven - 图4
    验证:
    2.Maven - 图5
    修改远程仓库
    远程仓库指的是maven从何处下载jar包,因为默认采用的是国外的地址,下载速度较慢,所以需要设置为国内阿里云的镜像仓库。
    1. <mirrors>
    2. <mirror>
    3. <id>alimaven</id>
    4. <mirrorOf>central</mirrorOf>
    5. <name>aliyun maven</name>
    6. <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    7. </mirror>
    8. </mirrors>
    2.Maven - 图6
    整合maven到eclipse和idea
    2.Maven - 图7
    打开preferences
    2.Maven - 图8
    2.Maven - 图9
    2.Maven - 图10
    关于idea集成maven,可以打开File-Settings-Build,Execution,Deployment-Build Tools-Maven选项中设置,设置步骤类似。
    也可以使用idea自带的maven插件,只需要打开该对应插件中的setting.xml配置本地仓库和镜像中央仓库。

    创建maven项目

    2.Maven - 图11
    2.Maven - 图12
    2.Maven - 图13
    2.Maven - 图14
    2.Maven - 图15
    2.Maven - 图16

    maven依赖管理

    依赖管理:
  1. Maven利用dependency(依赖)自动下载、管理第三方jar;
  2. 在pom.xml文件中配置项目依赖的第三方组件
  3. maven自动将依赖从远程仓库下载至本地仓库,并在工程中引用
    2.Maven - 图17
    可以在该pom.xml中添加一个dependencies的根标签。
    并去https://search.maven.org中查找对应jar包的依赖
    比如,我现在添加该依赖就可以下载对应的mysql连接驱动。 ``` 4.0.0 com.dodoke test 0.0.1-SNAPSHOT mysql mysql-connector-java 8.0.18

  1. 比较复杂的组件由多个jar包组合,maven对组件进行深入解析,对所有jar包进行下载。
  2. <a name="62QiS"></a>
  3. ## 本地仓库与中央仓库
  4. 在我们使用maven之前,其实我们已经去设置了中央仓库为阿里云的镜像仓库,而且也设置了本地仓库为c盘之外的其他盘符。<br />那么,究竟什么是maven的中央仓库与本地仓库呢?<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844572-8224839c-4650-4ba9-bc6d-09fa906853a1.png#align=left&display=inline&height=187&margin=%5Bobject%20Object%5D&originHeight=187&originWidth=748&size=0&status=done&style=none&width=748)<br />当我们使用maven的时候,我们可以通过pom.xml下载对应的jar包。其实maven会经历如下的步骤:
  5. 1. 解析pom.xml,分析要下载的内容
  6. 1. 查看本地仓库,查找是否已经下载过该jar
  7. 1. 如果没有该jar包,将前往中央仓库下载该jar包到本地仓库
  8. 1. 在下载好以后或本地存在该jar,则自动的将该jar包添加到项目中
  9. 其实在之前的设置中,我们设置了maven默认下载的阿里云提供的中央仓库中保存的jar包。但是这在我们正式开发中不怎么建议。<br />通常我们会设置单独某个项目采用私服(代理服务器,保存有备份的jar包,最有名的就是阿里云的私服)的仓库,比如我们会在pom.xml中设置仓库地址。

4.0.0 com.dodoke test 0.0.1-SNAPSHOT

aliyun aliyun https://maven.aliyun.com/repository/public mysql mysql-connector-java 8.0.18 这样就可以设置单个项目的jar下载,优先从阿里云私服下载,如果私服没有,才从maven官网下载。 <a name="uluU1"></a> ## 项目打包 Maven可以将项目打包成jar和war包,Maven项目打包是通过Plugins(插件)来实现的,Maven输出Jar包的插件叫做`maven-assembly-plugin` org.apache.maven.plugins maven-assembly-plugin 2.5.5 com.dodoke.maven.JDBCTest jar-with-dependencies ![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844532-a9098868-cd0e-4d1a-8dfc-50fb5dc690ab.png#align=left&display=inline&height=746&margin=%5Bobject%20Object%5D&originHeight=746&originWidth=1366&size=0&status=done&style=none&width=1366)<br />**如何运行,生成jar包** 1. 选择run菜单中的Run Configurations命令-选择Maven build创建新运行命令<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844578-95bcd4dc-e0fd-4a76-947d-fb2c478f9b31.png#align=left&display=inline&height=732&margin=%5Bobject%20Object%5D&originHeight=732&originWidth=890&size=0&status=done&style=none&width=890)<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844615-7b42fdc7-652b-4f8f-8746-9208a0969794.png#align=left&display=inline&height=732&margin=%5Bobject%20Object%5D&originHeight=732&originWidth=890&size=0&status=done&style=none&width=890) 1. 运行新命令<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844582-e1e83219-aaed-430c-8a42-da67bc570c57.png#align=left&display=inline&height=746&margin=%5Bobject%20Object%5D&originHeight=746&originWidth=1366&size=0&status=done&style=none&width=1366) 1. 生成的jar包<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844595-306e97e0-5ab1-4368-be64-7b33412c389d.png#align=left&display=inline&height=622&margin=%5Bobject%20Object%5D&originHeight=622&originWidth=1206&size=0&status=done&style=none&width=1206) <a name="bjQ26"></a> ## maven创建Java web项目 创建Java web,其实对于maven来说,步骤和创建普通Java项目一样。<br />但是要注意修改一下maven项目使用的jdk和编译级别(默认使用jdk 1.5)<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844572-29c04d55-c106-44a8-b42a-f3c86078fe80.png#align=left&display=inline&height=582&margin=%5Bobject%20Object%5D&originHeight=582&originWidth=359&size=0&status=done&style=none&width=359)<br />项目上右键选择properties,选择Java compiler<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844560-d3134d86-5ac3-4a9c-ae88-f372aaf9a58b.png#align=left&display=inline&height=721&margin=%5Bobject%20Object%5D&originHeight=721&originWidth=840&size=0&status=done&style=none&width=840)<br />创建保存网页的文件夹<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844573-3e685df0-c961-4a32-9b49-253064a1ecc9.png#align=left&display=inline&height=290&margin=%5Bobject%20Object%5D&originHeight=290&originWidth=351&size=0&status=done&style=none&width=351)<br />**这时前期的准备工作就已经完成了。**<br />接下来,需要将普通工程转变为Java web工程,同样项目上右键选择properties<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844535-af68b161-7502-409c-865a-8f4bbea9fcc6.png#align=left&display=inline&height=738&margin=%5Bobject%20Object%5D&originHeight=738&originWidth=726&size=0&status=done&style=none&width=726)<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844586-663211ec-fd07-4a59-a7f8-9a30a429ff40.png#align=left&display=inline&height=738&margin=%5Bobject%20Object%5D&originHeight=738&originWidth=1007&size=0&status=done&style=none&width=1007)<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844550-065cb8b0-4f74-47e2-9c30-06c44f2a61e1.png#align=left&display=inline&height=445&margin=%5Bobject%20Object%5D&originHeight=445&originWidth=525&size=0&status=done&style=none&width=525)<br />![](https://cdn.nlark.com/yuque/0/2020/png/1323468/1600648844567-f44789ca-1090-4017-a7a2-34951c918cac.png#align=left&display=inline&height=582&margin=%5Bobject%20Object%5D&originHeight=582&originWidth=359&size=0&status=done&style=none&width=359) <a name="TNyiC"></a> ## web工程打包 4.0.0 com.dodoke maven 1.0.0-SNAPSHOT war aliyun aliyun https://maven.aliyun.com/repository/public javax.servlet jstl 1.2

maven-web org.apache.maven.plugins maven.war.plugis 3.2.2 ``` 同样新增创建一个新的打包运行命令:
2.Maven - 图18

maven常用命令

2.Maven - 图19
之前我们都是在eclipse中使用maven,其实我们也可以通过控制台创建maven项目。
本节内容仅做了解

idea中使用maven

普通Java项目
2.Maven - 图20
2.Maven - 图21
2.Maven - 图22
创建Java Web项目
https://blog.csdn.net/qq_37856300/article/details/85776785