Maven基础教程

1 Maven简介

2 Maven基础概念

2.1 仓库

2.2 坐标

3 依赖的相关知识点

4 生命周期与插件

5 使用Inteli idea完成第一个Maven项目


1 Maven简介

        Maven的本质就是一个项目管理工具,用于将项目开发和管理过程抽象成一个项目对象模型(project object model POM)

Maven的作用:

  • 项目构建:提供标准的、跨平台的自动化项目构建方式
  • 依赖管理:方便便捷的管理项目以来的资源(jar包),避免资源之间的版本冲突问题
  • 统一开发结构:提供了标准统一的项目结构,如下图:

Maven的下载安装与配置:只需五步学会Maven的下载安装【图文详解】_扎哇太枣糕的博客-CSDN博客

2 Maven基础概念

2.1 仓库

        仓库用于存储资源,主要是各种jar包

 从上图可知,仓库可被分为两种:本地仓库和远程仓库

  • 本地仓库:自己电脑上用于存储资源的仓库,可连接远程仓库来获取资源
  • 远程仓库:非本机上的仓库,为本地仓库提供资源
    • 私服:一定范围内存储资源的仓库,既可以从中央仓库中获取资源,也可以将各种途径获取到的不开源jar包存储在私服里
    • 中央仓库:由Maven的官方团队来维护,存储所有的资源,且里面的资源都是开源的

2.2 坐标

坐标就是Maven中用于描述仓库中资源的位置

Maven坐标的主要组成

  • groupId:当前Maven项目隶属组织的名称,通常是域名的反写(如org.mybatis)
  • artifactId:当前maven项目名称,通常是模块名(如hadoop-client)
  • version:项目版本号
  • packing:定义项目的打包方式(jar或者war等)

如何使用坐标导入依赖:​​​​​​从Maven中央仓库网站下载jar包的两种方式,将会伴随java后端开发者的整个职业生涯_扎哇太枣糕的博客-CSDN博客

3 依赖的相关知识点

依赖的配置:

依赖配置就是在pom.xml文件中导入相关依赖,借以定位到具体的jar包。所有的依赖全都在pom.xml文件下面的<dependencies>标签进行管理,使用<dependency>对每个jar包进行定位, 一个项目可以设置多个依赖,使用多个<dependency>标签进行定位。

依赖的传递:

依赖传递就是两个模块之间进行调用,被调用模块的依赖会被传递给调用模块,调用模块的pom.xml文件里需把被调用模块当成是一个依赖进行导入

依赖传递时的冲突问题:

当调用模块的依赖版本与被调用模块的版本发生冲突时,遵循以下原则:

  • 路径优先:不同模块的不同层级,层级浅的依赖覆盖层级深的
  • 声明优先:不同模块的相同层级冲突,先配置的覆盖后配置
  • 后覆盖前:同一个模块内,后配置的覆盖前面的

依赖传递时标签里的设置:

隐藏依赖(被调用模块的行为)

<optional>true</optional>

设置之后,调用模块就看不见被调用模块里面使用过这个依赖了 

排除依赖( 调用模块的行为)

<exclusions><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion>
</exclusions>

 设置之后,调用模块里将不再使用被调用模块的这个依赖

4 生命周期与插件

生命周期就是一个完整的Maven项目需要经历所有的阶段,就像是生命一样无法跳过一个阶段去执行下一个阶段,主要有以下三套生命周期:

 插件就是要与生命周期的某个阶段相绑定,在执行到相应生命周期时会去实行相绑定的插件的功能。

 Maven官网中给出的所有插件:https://maven.apache.org/plugins/index.html

插件目录结构(以打jar包插件为例)

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><goals><goal>jar</goal></goals><phase>generate-test-resources</phase></execution></executions></plugin></plugins>
</build>

5 使用Inteli idea完成第一个Maven项目

参考博客:2021 使用IDEA创建并编写你的第一个Maven项目【图文详解】_扎哇太枣糕的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java从入门到头秃专栏 】(一)学在Java语法之前

目录 1 初识Java 2 Java环境JDK 3 Java规范 1 初识Java Java是美国的sun(Stanford University Network)公司在1995年推出的一门计算机高级编程语言&#xff0c;虽然说当时参与开发Java的人员有好几名&#xff0c;但是业内公认的Java之父是詹姆斯高斯林(James Gosling)。 Jav…

【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出

目录 1 注释 2 数据类型 3 变量与常量 4 关键字、标识符 5 运算符 6 键入值、输出值 1 注释 注释就是写在程序中对代码进行解释说明的文字&#xff0c;方便自己和其他人查看&#xff0c;以便大家更加容易理解程序。注释虽然写在程序中&#xff0c;但是并不参与程序的执行&#…

【Java从入门到头秃专栏 】(三) 控制流程 Math Date DateFormat Calendar System BigDecimal Random

目录 1 控制流程 2 Math类 3 Date类 4 DateFormat类 5 Calendar类(日历类) 6 System类 7 BigDecimal类 8 Random类(随机数) 1 控制流程 1.1 块作用域 块(即复合语句)就是指由若干条Java语句组成的语句&#xff0c;并用一条大括号括起来&#xff0c;并借此形式确定了变量…

IntelliJ IDEA最常用的一些快捷键,学会了室友还以为你在祖安对线

目录 1 快速生成语句 1.1 main语句 1.2 输出语句 1.3 流程控制语句 1.3.1 if判断语句 1.3.2 while循环 1.3.3 for循环 1.3.4 数组、集合的循环操作 1.3.5 迭代器循环操作 1.4 对象实例化、定义变量 1.5 try-catch异常 2 快捷键 2.1 Ctrl系列 2.2 alt系列 2.2.1…

【Java从入门到头秃专栏 6】语法篇(五) :多线程 线程池 可见、原子性 并发包 Lambda表达式

目录 1 多线程 1.1 基本概念 1.2 创建线程的三种方式 1.4 解决线程安全问题的三种方法 1.5 线程通信 1.6 线程状态 2 线程池 2.1线程池的概念 2.2 创建并提交任务 3 可见性 3.1 变量不可见性 3.2 变量不可见性的解决方案 4 原子性 4.1 原子性的概念 4.2 保证原…

【Java从入门到头秃专栏 7】语法篇(六) :Lambda表达式(->) 方法引用(::) stream流

目录 1 Lambda表达式( -> ) ​ 2 方法引用( :: ) 3 Stream流 接下来介绍的三种语法叫&#xff1a;Lambda表达式 方法引用 stream流&#xff0c;这三种语法的使用要有特定条件&#xff0c;在一定条件下借助这三种语法可以使代码十分简单且优雅&#xff0c;但是不要舍本逐末…

【Java从入门到头秃专栏 4】语法篇(三) :字符串 数组

目录 1 String字符串 2 数组 1 String字符串 Java没有内置的字符串类型&#xff0c;而是在Java类库中提供了一个预定义类--String。 在Java中把每一个使用双引号括起来的字符串都看做是String类的一个实例化对象。 String常被称作是不可变字符串类型&#xff0c;那么有人就有…

【Java从入门到头秃专栏 8】语法篇(七) :反射 动态代理 注解

目录 1 反射机制 2 反射的应用&#xff1a;动态代理 3 注解 1 反射机制 反射机制(Reflect Machanism)&#xff0c;是指在程序运行期间借助Reflect API获取任何类的内部信息&#xff0c;并能直接操作对象的内部属性以及方法&#xff0c;Java本身而言是静态语言但是由于Java反…

【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 2】Spring相关API 数据源(连接池)的配置 注解开发 整合junit

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 4】 Spring集成web环境 SpringMVC初识

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; ​…

IntelliJ IDEA里的项目搞崩了怎么办,本地历史版本回退拯救你崩溃的心灵

&#x1f4a5;写在前面&#xff1a; 如果你还没有读过雨果的悲惨世界也没有读过余华的活着&#xff0c;那你可以看看我今天早上的经历&#xff0c;如果不想听我胡侃的话&#xff0c;直接进入正题&#xff1a; 目录 本地历史的强大 今天早上打开IntelliJ IDEA继续ssm模块的代码练…

【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 6】springMVC拦截器、异常处理 jdbcTemplate

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 7】springAop 事务控制

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 8】一篇博客快速上手使用MyBatis进行CRUD

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 9】SSM框架整合

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

三万字速通SSM框架入门知识点,快速上手CRUD

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

问题简介 本人是在进行一个ssm框架项目的编写的时候&#xff0c;在数据库中查询到所有的商品信息并返回到页面使用EL表达式进行展现&#xff0c;但是使用tomcat 9.0.58运行的时候报错会出现以下报错情况。 页面报错&#xff1a; 控制台报错&#xff1a; 解决方法 首先看看是不…

check the manual that corresponds to your MySQL server version for the right syntax to use near

首先判断自己是在什么情况下报的错&#xff0c;如果是MyBatis的SQL报错的话&#xff0c;建议直接点击目录跳转到MyBatis时SQL报错&#xff0c;避免浪费时间。如果本文能够对你有所帮助的话&#xff0c;还请在评论区多多支持 目录 &#x1f37b;运行SQL语句、SQL文件等报错 &…