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://www.rhkb.cn/news/321561.html

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

相关文章

力扣437. 路径总和 III

Problem: 437. 路径总和 III 文章目录 题目描述思路复杂度Code 题目描述 思路 1.定义int类型函数rootSum(root, targetSum)&#xff0c;用于求取每一个节点等于目标函数的路径数&#xff1a; 1.1.易知rootSum(root, targetSum)求出的数量等于rootSum(root.left, targetSum - va…

excel如何将多列数据转换为一列?

这个数据整理借用数据透视表也可以做到&#xff1a; 1.先将数据源的表头补齐&#xff0c;“姓名” 2.点击插入选项卡&#xff0c;数据透视表&#xff0c;在弹出对话框中&#xff0c;数据透视位置选择 现有工作表&#xff0c;&#xff08;实际使用时新建也没有问题&#xff09;…

机器学习项目实践-基础知识部分

环境建立 我们做项目第一步就是单独创建一个python环境&#xff0c;Python新的隔离环境 创建&#xff1a;python -m venv ml 使用&#xff1a;.\Scripts\activate python -m venv ml 是在创建一个名为 ml 的虚拟环境&#xff0c;这样系统会自动创建一个文件夹ml&#xff0c;…

crossover怎么打开软件 mac怎么下载steam crossover下载的软件怎么运行

CrossOver是一款Mac和Linux平台上的类虚拟机软件&#xff0c;通过CrossOver可以运行Windows的可执行文件。如果你是Mac用户且需要使用CrossOver&#xff0c;但是不知道CrossOver怎么打开软件&#xff0c;如果你想在Mac电脑上玩Windows游戏&#xff0c;但不知道怎么下载Steam&am…

Springboot 集成 Consul 实现服务注册中心-05

因为后续很多模块都要用到注册中心&#xff0c;所以此处先实现此模块。 Consul简介 Consul是一个开源的服务发现和配置管理工具&#xff0c;具有跨平台、运行高效等特点。它由HashiCorp公司开发&#xff0c;并使用Go语言编写。Consul主要用于实现分布式系统中的服务发现、健康…

把项目打包成Maven Archetype(多模块项目脚手架)

1、示例项目 2、在pom.xml中添加archetype插件 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.2.0</version> </plugin>3、打包排除某些目录 当我们使用…

扭蛋机小程序在互联网浪潮中的崛起与发展

随着互联网的快速发展&#xff0c;各种线上娱乐方式层出不穷&#xff0c;其中扭蛋机小程序凭借其独特的魅力&#xff0c;在互联网浪潮中迅速崛起并发展壮大。扭蛋机小程序不仅打破了传统扭蛋机的地域限制和操作不便&#xff0c;还融入了丰富的互动元素和便捷性&#xff0c;满足…

Jmeter页面汉化和字体显示过小调整

在频繁解压使用Jmeter的时候&#xff0c;经常会遇到需要将页面的英文调整为中文&#xff0c;页面文字和编辑区域内容文字显示较小的问题&#xff0c;记录一下方便以后查阅。 1.页面汉化 Jmeter在解压启动之后页面显示是英文&#xff0c;如果需要修改为中文&#xff0c;可以修改…

做题速度太慢了,面不上

没办法&#xff0c;之前练了一个月的sql。两个月不写&#xff0c;现在差不多忘干净了。工作空窗期&#xff0c;或者休息期不能太久&#xff0c;不然学再多的内容都可能会忘完的。 sql题&#xff0c;腾讯四道sql题&#xff0c;限时45分钟完成。我只做了一道&#xff0c;还没做完…

java接受入参是xml格式参数demo

java接受入参是xml格式参数demo 依赖demo1. xml入参定义2.接口定义3. postman请求4. 结果 注解说明 依赖 pom依赖 jackson-dataformat-xml <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</…

基于web的物流管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

顺序表的实现(迈入数据结构的大门)

什么是数据结构 数据结构是由&#xff1a;“数据”与“结构”两部分组成 数据与结构 数据&#xff1a;如我们所看见的广告、图片、视频等&#xff0c;常见的数值&#xff0c;教务系统里的&#xff08;姓名、性别、学号、学历等等&#xff09;&#xff1b; 结构&#xff1a;当…

项目经理【人】任务

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 【环境】任务 【环境】绩效 【人】概述 【人】原则 【人】任务 一、定义团队的基本规则&塔克曼阶梯理论 1.1 定义团队的基本规则 1.2 塔克曼阶梯理论 二、项目经理管理风格 …

uts插件开发-继uniapp原生插件nativeplugins,uts插件开发可直接操作原生安卓sdk等,支持uniappx,支持源码授权价格等等

1.创建uts项目 2.创建uts插件cf-takepic 3.在index.uts中编写原生安卓代码&#xff0c;首先定义一个函数方法&#xff0c;在页面中看是否可引用成功 uts函数代码 /*** 拍照函数*/ export const takepicfunction():void{console.log("11111111") } index.vue代码 …

简单两步将Lllama、Qwen等开源大模型安装到自己的电脑上

现在已经有非常多优秀的开源大语言模型了&#xff0c;比如Command R、Mistral、Qwen、MiniMax、Baichuan、Phi3等&#xff0c;其中Lllama3和Qwen等已经和GPT4的性能比较接近了。 如果能把这些免费的开源大模型部署到本地电脑或手机上&#xff0c;可以完全自由的使用&#xff0…

Misc 流量分析

流量分析简介 网络流量分析是指捕捉网络中流动的数据包&#xff0c;并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。 在CTF比赛中&#xff0c;以及各种技能大赛对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供…

DirClass

DirClass 通过分析&#xff0c;发现当接收到DirClass远控指令后&#xff0c;样本将返回指定目录的目录信息&#xff0c;返回数据中的远控指令为0x2。 相关代码截图如下&#xff1a; DelDir 通过分析&#xff0c;发现当接收到DelDir远控指令后&#xff0c;样本将删除指定目录…

xv6源码分析 017

xv6源码分析 017 在buffer cache上面的就是logging层了&#xff0c;这一层主要的工作是维持每一个文件系统写入的操作的原子性。什么是原子性&#xff1f;通俗地来讲&#xff0c;原子性可以这样理解&#xff0c;如果一组操作&#xff08;或者一个操作&#xff09;在执行的时候…

神经网络极简入门

神经网络是深度学习的基础&#xff0c;正是深度学习的兴起&#xff0c;让停滞不前的人工智能再一次的取得飞速的发展。 其实神经网络的理论由来已久&#xff0c;灵感来自仿生智能计算&#xff0c;只是以前限于硬件的计算能力&#xff0c;没有突出的表现&#xff0c;直至谷歌的A…

AI数据中心网络技术选型,InfiniBand与RoCE对比分析

InfiniBand与RoCE对比分析&#xff1a;AI数据中心网络选择指南 随着 AI 技术的蓬勃发展&#xff0c;其对数据中心网络的要求也日益严苛。低延迟、高吞吐量的网络对于处理复杂的数据密集型工作负载至关重要。本文分析了 InfiniBand 和 RoCE 两种数据中心网络技术&#xff0c;帮助…