还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了

一、 Maven的介绍

  1. Maven是apache组织提供的一个*项目
  2. Maven是一个由java开发工具
  3. 作用:
    管理项目构建生命周期
    管理项目中jar
    管理项目基础信息(文档管理,测试报告)

二、 项目构建生命周期

  1. 周期:开发—>编译—>打包—>发布
  2. 打包:
    1.1 java工程:将工程中所有的java类打成jar
    2.1 web工程:将工程打成war
  3. 专业流程:清理—>编译—>测试—>报告—>打包—>发布

三、 项目中的jar管理:

  1. Jar管理难度:
    1.1 定位较难
    2.1 Jar包之间的冲突
    3.1 Jar包之间依赖较难
    4.1 Jar管理

四、 Maven是如何管理jar的

还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了

五、 Maven项目信息管理:(测试人员)

  1. api文档
  2. 测试报告

六、 Maven安装与配置

  1. 安装
    注意:建议使用jdk8+maven3.5.2,否则我无法保证在后面的测试过程中你会出现令人想砸电脑的冲动(本人用了近一天的时间修复maven)

地址:https://archive.apache.org/dist/maven/maven-3/

解压文件路径不要有中文和空格!最好别放c盘
2. 文件结构
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
3. 配置环境变量
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
Path中添加
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
注意:在这之前必须配好jdk
4. 打开cmd查看是否安装成功
输入命令:mvn -v
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
出现如图所示,安装成功

七、 Maven的本地仓库

随便发送maven命令:如 mvn -clean
此时会在当前计算机上生成一个本地仓库
默认位置:C:\Users\pos.m2\repository,此仓库是用来存放所有的jar
为防止重装系统,导致此文件夹格式化,我们需要重新设置本地仓库地址

八、 重新设置本地仓库地址

  1. 打开:Maven安装路径/conf/settings.xml
  2. 找到53行:/path/to/local/repo这是默认的仓库地址
  3. 重新设置地址
    1.1 在任意盘下新建目录用来作为仓库
    2.1 在settings.xml添加
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
  4. 设置镜像仓库,这里使用阿里
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了

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

    完成

九、 Maven工程结构

  1. Maven可以管理工程,必须按照约定的结构来创建

  2. 工程结构:
    src文件夹:(java代码)
    main(主要开发)
    java(创建Java文件)
    resource(配置文件,properties)

    test(主要进行测试)
    java(创建测试类)
    resource(测试时使用的配置文件)
    target文件:(编译后class文件,在创建项目时不需要创建,maven命令执行时自动创建target。
    pom.xml:(核心配置文件,主要想maven要jar)

十、 Maven常见命令(项目构建周期)

  1. mvn clean:删除当前工程中target
  2. mvn compile:将当前工程中main文件下所有的java编译为class,输送到当前工程中target
    3. mvn test:调用test文件夹下所有测试类中的所有测试方法,并生成测试报告
  3. mvn package:将工程中test文件下所有的java测试类的方法调用执行进行测试并生成测试报告,如果测试没问题,将main文件下所有class文件打成jar或war,输送到当前工程target
    5. mvn install:与package命令执行基本一致,将jar、war推送到maven的本地仓库中

十一、 maven坐标(gav)

为了方便maven对jar的定位,在maven世界中,每一个jar都要有一个独立坐标,相当于ip,这个独立坐标有由三部分组成:
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
这三部分使项目全球唯一。

十二、 在idea中配置maven

  1. 新建空项目
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
  2. 设置maven
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了

-Dmaven.multiModuleProjectDirectory=$环境变量中的maven名称
不要忘记设置jdk,在importing中也需要设置jdk

十三、 新建java模板

还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
这个简单的maven模板是用来创建普通java工程,后边还会介绍web工程

  1. 设置坐标
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
    Next---->finish
  2. 授权
    当你完成之后会发现你的项目结构并不是按着上面所述的一致
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了

不必担心,缺什么补什么就好
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
3. 测试
1.1 新建Student类和测试类

还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
此时还没有导入@Test的jar
2.1 导入jar
到maven的官网找junit的gav
https://mvnrepository.com还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
将上面的内容复制到pom.xml,注意外部有个标签还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
Import class
3.1 测试
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
成功!

十四、 新建web模板

  1. 新建
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
    2.配置
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
    3.仓库
    还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
    archetypeCatalog表示插件使用的archetype元数据,不加这个参数时默认为remote,local,即*仓库archetype元数据,由于*仓库的archetype太多了所以导致很慢,指定internal来表示仅使用内部元数据。
    Next---->finish

4.权限
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
5.添加tomcat
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
6.配置tomcat

还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
7.pom.xml中添加jar
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
8.在java文件夹下新建servlet
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
9.配置web.xml
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
这里面如果有报错的地方全删了就行,只留上面内容即可
10.编写servlet
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
11.启动tomcat
还在为导jar包感到烦恼吗?来看看这篇maven教程,妈妈再也不用担心我掉发了
访问地址:http://localhost:8080/servlet.do

完成!

十五、 总结

使用idea创建maven项目时,建议使用jdk8+maven3.5.2,
小编这里遇到了超级坑的问题报错:
Maven execution terminated abnormally (exit code 1)
原因:可能是settings.xml没有设置好
搞了很久,希望大家不会遇到。如果不幸遇到了,请私聊我。
创作不易,觉得小编写的还行的话,点个赞吧。如果有不合理的地方私聊我就可以,感谢指正。