SSM【Spring SpringMVC Mybatis】——Maven

目录

1、为什么使用Maven

1️⃣获取jar包

2️⃣添加jar包

3️⃣使用Maven便于解决jar包冲突及依赖问题

2、什么是Maven

3、Maven基本使用

3.1 Maven准备

3.2 Maven基本配置

 3.3 Maven之Helloworld

4、Maven及Idea的相关应用

4.1 将Maven整合到IDEA中

 4.2 在IDEA中新建Maven工程

5、 Maven核心概念

5.1 Maven的POM

 5.2 Maven约定的目录结构

5.3 Maven生命周期

5.4 Maven插件和目标

5.5 Maven的仓库【重要】

5.6 Maven的坐标【重要】

 6、 Maven的依赖管理

6.1 依赖范围

6.2 依赖传递性

7、Maven的继承

7.1 为什么需要继承

7.2 Maven继承方式一

7.3 Maven继承方式二

8、Maven的聚合


1、为什么使用Maven

1️⃣获取jar包

  使用Maven之前,自行在网络中下载jar包,效率较低。如【谷歌、百度、CSDN....】

  使用Maven之后,统一在一个地址下载资源jar包【阿里云镜像服务器等...】

2️⃣添加jar包

  使用Maven之前,将jar复制到项目工程中,jar包添加到项目中,相对浪费存储空间

  使用Maven之后,jar包统一存储Maven本地仓库,使用坐标方式将jar包从仓库引入到项目中

3️⃣使用Maven便于解决jar包冲突及依赖问题

2、什么是Maven

Maven字面意:专家、内行

Maven是一款自动化构建工具,专注服务于Java平台的**项目构建**和**依赖管理**。

依赖管理:jar之间的依赖关系,jar包管理问题统称为依赖管理

项目构建:项目构建不等同于项目创建

  项目构建是一个过程【7步骤组成】,项目创建是瞬间完成的

    1. 清理:mvn clean

    2. 编译:mvn compile

    3. 测试:mvn test

    4. 报告:

    5. 打包:mvn package

    6. 安装:mvn install

    7. 部署:

3、Maven基本使用

3.1 Maven准备

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

-Maven底层使用Java语言编写的,所有需要配置JAVA_HOME环境变量及Path

- 将Maven解压非中文无空格目录下

配置MAVEN_HOME环境变量及Path

输入【cmd】,进入命令行窗口,输入【mvn   -v】 ,检查Maven环境是否搭建成功

3.2 Maven基本配置

Maven配置文件位置:maven根目录/conf/settings.xml

设置本地仓库【默认:C:/用户家目录/.m2/repository】

  <!-- localRepository| The path to the local repository maven will use to store artifacts.|| Default: ${user.home}/.m2/repository<localRepository>/path/to/local/repo</localRepository>--><localRepository>E:\SG_220106\LocalRepository</localRepository>

设置阿里云镜像服务器

  <mirrors><!-- mirror| Specifies a repository mirror site to use instead of a given repository. The repository that| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.|<mirror><id>mirrorId</id><mirrorOf>repositoryId</mirrorOf><name>Human Readable Name for this Mirror.</name><url>http://my.repository.com/repo/path</url></mirror>--><mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror></mirrors>

  设置使用JDK版本【1.8|JDK8】

  <profiles><profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile></profiles>

 3.3 Maven之Helloworld

> 约束>配置>代码

Maven工程目录结构约束

  项目名

    src【书写源代码】

      main【书写主程序代码】

         java【书写java源代码】

        resources【书写配置文件代码】

      test【书写测试代码】

        java【书写测试代码】

    pom.xml【书写Maven配置】

测试步骤

  进入项目名根目录【在根目标输入cmd即可】

  mvn clean

  mvn compile

   mvn test-compile

  mvn test

  mvn package

  mvn install

4、Maven及Idea的相关应用

4.1 将Maven整合到IDEA中

 4.2 在IDEA中新建Maven工程

 

5、 Maven核心概念

5.1 Maven的POM

POM全称:Project Object Model【项目对象模型】,将项目封装为对象模型,便于使用Maven管理【构建】项目

pom.xml常用标签

 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><!--    设置父工程坐标--><parent><artifactId>maven_demo</artifactId><groupId>com.atguigu</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>maven_helloworld</artifactId><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies></project>

 5.2 Maven约定的目录结构

  src【书写源代码】

      main【书写主程序代码】

         java【书写java源代码】

        resources【书写配置文件代码】

      test【书写测试代码】

        java【书写测试代码】

    pom.xml【书写Maven配置】

target【编译后目录结构】

5.3 Maven生命周期

Maven生命周期:按照顺序执行各个命令,Maven生命周期包含以下三个部分组成

  Clean LifeCycle:在进行真正的构建之前进行一些清理工作。

  Default LifeCycle:构建的核心部分,编译,测试,打包,安装,部署等等。

  Site LifeCycle:生成项目报告,站点,发布站点。

5.4 Maven插件和目标

插件:插件本质是由jar包和配置文件组成

目标:每个插件都能实现多个功能,每个功能就是一个插件目标。

5.5 Maven的仓库【重要】

仓库分类

  本地仓库:为当前计算机提供maven服务

  远程仓库:为其他计算机也可以提供maven服务

   私服:架设在当前局域网环境下,为当前局域网范围内的所有Maven工程服务。

   中央仓库:架设在Internet上,为全世界所有Maven工程服务。

   中央仓库的镜像:架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快的响应用户请求。

仓库中的文件类型【jar包】

  Maven的插件

  第三方框架或工具的jar包

  自己研发的项目或模块

5.6 Maven的坐标【重要】

作用:使用坐标引入jar包

坐标由g-a-v组成

groupId:公司或组织的域名倒序+当前项目名称

artifactId:当前项目的模块名称

version:当前模块的版本

注意

 g-a-v:本地仓库jar包位置

 a-v:jar包全名

坐标应用

坐标参考网址:http://mvnrepository.com

 6、 Maven的依赖管理

6.1 依赖范围

依赖语法:\<scope>

  compile【默认值】:在main、test、Tomcat【服务器】下均有效。

  test:只能在test目录下有效

    junit

  provided:在main、test下均有效,Tomcat【服务器】无效。

    servlet-api

6.2 依赖传递性

路径最短者有先【就近原则】

先声明者优先

注意:Maven可以自动解决jar包之间的依赖问题

7、Maven的继承

7.1 为什么需要继承

如子工程大部分都共同使用jar包,可以提取父工程中,使用【继承原理】在子工程中使用

父工程打包方式,必须是pom方式

7.2 Maven继承方式一

在父工程中的pom.xml中导入jar包,在子工程中统一使用。【所有子工程强制引入父工程jar包】

示例代码

  <packaging>pom</packaging><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>

7.3 Maven继承方式二

在父工程中导入jar包【pom.xml】

<packaging>pom</packaging><dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies></dependencyManagement>

  在子工程引入父工程的相关jar包

  <parent><artifactId>maven_demo</artifactId><groupId>com.atguigu</groupId><version>1.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath></parent><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency></dependencies>

注意:在子工程中,不能指定版本号

8、Maven的聚合

为什么使用Maven的聚合

  优势:只要将子工程聚合到父工程中,就可以实现效果:安装或清除父工程时,子工程会进行同步操作。

  注意:Maven会按照依赖顺序自动安装子工程

<modules><module>maven_helloworld</module><module>HelloFriend</module><module>MakeFriend</module></modules>

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

odoo实施之各种导航设计

odoo各种基础能力&#xff1a;活动、讨论 玩转odoo&#xff0c;真有玩的体验 odoo消息提醒能力 odoo 讨论模块 odoo 通过new message触发任务 安装odoo studio进行拖拉拽设计 查阅官方文档&#xff0c;向官方提issue 欧洲和美国&#xff0c;虽然都是英语&#xff0c;但日期格式…

市场营销的酒店营销策略研究意义

在市场经济条件下&#xff0c;市场营销策略已成为企业经营管理中最重要的组成部分&#xff0c;其在企业管理中的地位日益显现出来。 然而&#xff0c;由于酒店营销环境的特殊性&#xff0c;酒店营销策略研究一直是咱们从业者研究的热点之一。 对于酒店营销策略的研究&#xf…

PHPStudy Apache或者MySQL启动以后自动停止

问题 phpstudy小皮面板中的Apache或MySQL启动以后自动停止 正在启动——已启动——已停止 总结&#xff1a;最主要的原因&#xff1a;端口冲突 端口冲突了&#xff0c;已经有其他程序占用了80、3306端口。 也就是说你的电脑上已经有了一个Apache、MySQL并且正在运行。 解决方案…

04.2.配置应用集

配置应用集 应用集的意思就是&#xff1a;将多个监控项添加到一个应用集里面便于管理。 创建应用集 填写名称并添加 在监控项里面找到对应的自定义监控项更新到应用集里面 选择对应的监控项于应用集

Verilog中4位数值比较器电路

某4位数值比较器的功能表如下。 请用Verilog语言采用门级描述方式&#xff0c;实现此4位数值比较器 参考代码如下&#xff1a; &#xff08;CSDN代码块不支持Verilog&#xff0c;代码复制到notepad编辑器中&#xff0c;语言选择Verilog&#xff0c;看得更清楚&#xff09; t…

Linux命名管道的创建及应用

目录 一、命名管道的定义即功能 1.1创建命名管道 1.2匿名管道和命名管道的区别 1.3命名管道的打开规则 1.4系统调用unlink 二、进程间命名管道的创建及使用 2.1Comm.hhp 2.2PipeServer.cc 2.3PipeClient.cc 一、命名管道的定义即功能 管道应用的一个限制就是只能在具有…

【小迪安全2023】第61天:服务攻防-中间件安全CVE复现K8sDockeruettyWebsphere

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

美国站群服务器的CN2线路在国际互联网通信中的优势?

美国站群服务器的CN2线路在国际互联网通信中的优势? CN2线路&#xff0c;或称中国电信国际二类线路&#xff0c;是中国电信在全球范围内建设的高速骨干网络。这条线路通过海底光缆系统将中国与全球连接起来&#xff0c;为用户提供高速、低延迟的网络服务。CN2线路在国际互联网…

hadoop学习---基于Hive的数据仓库相关函数机制及其优化方案

Hive相关函数&#xff08;部分&#xff09;&#xff1a; if函数: 作用: 用于进行逻辑判断操作 语法: if(条件, true返回信息,false返回信息) 注意: if函数支持嵌套使用 select if(aa,’bbbb’,111) fromlxw_dual; bbbb select if(1<2,100,200) fromlxw_dual; 200nvl函数:…

每日OJ题_贪心算法三③_力扣45. 跳跃游戏 II(dp解法+贪心解法)

目录 力扣45. 跳跃游戏 II 解析代码1_动态规划 解析代码2_贪心 力扣45. 跳跃游戏 II 45. 跳跃游戏 II 难度 中等 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 num…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-14-主频和时钟配置

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

基于Django框架课堂投票系统的设计与实现

基于Django框架课堂投票系统的设计与实现 开发语言:Python 数据库&#xff1a;MySQL所用到的知识&#xff1a;Django框架工具&#xff1a;pycharm、Navicat、Maven 学生角色功能实现 注册登录界面 此处输入账号并设置登录密码&#xff0c;填写用户名、性别、生源地等相关信息…

flutter开发实战-webview_flutter 4.x版本使用

flutter开发实战-webview_flutter 4.x版本使用 在之前使用的webview_flutter版本是3.x的&#xff0c;升级到4.x后&#xff0c;使用方式有所变化。 一、webview_flutter 在工程的pubspec.yaml中引入插件 webview_flutter: ^4.4.2二、使用webview_flutter 在4.x版本中&#…

【Git管理工具】使用Docker+浪浪云服务器部署GitLab服务器

一、什么是GitLab 1.1.GitLab简介 GitLab 是一个开源的 DevOps 平台&#xff0c;它基于 Git 版本控制系统提供了从项目规划、源代码管理到持续集成、持续部署、监控和安全的完整生命周期管理。GitLab 是一个为开发者提供协作工作的工具&#xff0c;它使得团队能够高效地在同一…

雷蛇笔记本数据丢失怎么恢复?提供详细指南

在数字化时代&#xff0c;笔记本电脑已成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;尽管技术不断进步&#xff0c;数据丢失的风险仍然存在。雷蛇&#xff08;Razer&#xff09;作为一家知名的电脑硬件制造商&#xff0c;其笔记本电脑也难免会遇到这样的问题。当…

读天才与算法:人脑与AI的数学思维笔记21_语言游戏

1. 语言游戏 1.1. 如果你想成为一名作家&#xff0c;理解语言是很重要的&#xff0c;或者至少要有理解语言的愿望 1.2. 若要通过图灵测试&#xff0c;算法需要能够接受千变万化的“自然语言”作为输入&#xff0c;并对其进行处理&#xff0c;然后生成与…

修改ElTable组件的样式(element-plus)

效果展示 <div class"table_main"><ElTable:data"tableList":header-cell-style"{color: #ffffff,background: #6f7f93,}"class"table_border":highlight-current-row"false"><ElTableColumn type"inde…

整体安全保障服务方案包括哪些方面?

整体安全保障服务方案是一套综合性的措施&#xff0c;旨在保护企业的网络、数据和资源免受各种威胁。主要包含检测、加固、应急保障、安全运营、攻防演练等多项核心能力与服务。 ​安全狗通过专业团队、工具以及专业运营流程&#xff0c;提出了新一代整体安全保障思路&#xff…

如何查看慢查询

4.2 如何查看慢查询 知道了以上内容之后&#xff0c;那么咱们如何去查看慢查询日志列表呢&#xff1a; slowlog len&#xff1a;查询慢查询日志长度slowlog get [n]&#xff1a;读取n条慢查询日志slowlog reset&#xff1a;清空慢查询列表 5、服务器端优化-命令及安全配置 安…

第12章 软件测试基础(第三部分)测试类型、测试工具

七、测试类型&#xff08;按工程阶段划分&#xff09; 单集系确收 &#xff08;一&#xff09;单元测试 1、单元测试/模块测试 单元就是软件中最小单位&#xff08;或模块&#xff09;。可以是一个函数、一个过程、一个类。主要依据是模块的详细设计文档。价值在于尽早发现…