Maven(基础)、MyBatis

news2024/11/22 19:29:41

简介

        Apache Maven是一个项目管理和构建工具,它基于项目对象模型

        (POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档

        官网: http://maven.apache.org/

Maven作用

        Maven是专门用于管理和构建Java项目的工具,它的主要功能有:提供了一套标准化的项目结构、行提供了一套标准化的构建流程(编译,测试,打包,发布....)、提供了一套依赖管理机制

 标准化的项目结构如下图所示

        Maven提供了一套标准化的项目结构, 所有IDE使用Maven构建的项目结构完全一样, 所有IDE创建的Maven项目可以通用 

标准化的构建流程

        Maven提供了一套简单的命令来完成项目构建

依赖管理机制

        依赖管理:管理项目所依赖的第三方资源(jar包、插件...)

        Maven使用标准的坐标配置来管理各种依赖,只需要简单的配置就可以完成依赖管理。

Maven模型

仓库分类:

        本地仓库:自己计算机上的一个目录

        中央仓库:由Maven团队维护的全球唯一的仓库。地址: https://repo1.maven.org/maven2/

        远程仓库(私服):一般由公司团队搭建的私有仓库

        当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包。如果有,则在项目直接引用;如果没有,则去中央仓库中下载对应的jar包到本地仓库。还可以搭建远程仓库,将来jar包的查找顺序则变为:本地仓库-->远程仓库-->中央仓库

Maven安装配置

解压apache-maven-3.6.1.rar既安装完成

配置环境变量MAVEN_HOME为安装路径的bin目录

配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录

配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签

<mirror>

        <id>alimaven</id>

        <name>aliyun maven</name>

        <urI>http://maven.aliyun.com/nexus/content/groups/public/</url>

        <mirrorOf>central</mirrorOf>

</mirror>

基本使用

常用命令

命令说明
compile编译
clean清理
test测试
package打包
install安装

生命周期

Maven构建项目生命周期描述的是一次构建过程经历经历了多少个事件

Maven对项目构建的生命周期划分为3套

  • clean:清理工作
  • default:核心工作,例如编译,测试,打包,安装等
  • site:产生报告,发布站点等

同一生命周期内,执行后边的命令,前边的所有命令会自动执行

IDEA配置Maven

IDEA配置Maven环境

  1. 选择IDEA中File --> Settings
  2. 搜索maven
  3. 设置IDEA使用本地安装的Maven,并修改配置文件路径

Maven坐标

        Maven 中的坐标是资源的唯一标识,使用坐标来定义项目或引入项目中需要的依赖

        Maven坐标主要组成:groupld、artifactld、version

groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.GLATY)

artifactld:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)

version:定义当前项目版本号

创建Maven项目

        直接创建新项目,输入项目名称、位置以及其它信息。(空项目只需要输入项目名称和位置即可)

导入Maven项目

  1.         选择右侧Maven面板,点击+号
  2.         选中对应项目的pom.xml文件,双击即可

        如果没有Maven面板,选择View --> Appearance --> Tool Window Bars

配置Maven-Helper插件

  1. 选择IDEA中File --> Settings
  2. 选择 Plugins
  3. 搜索 Maven,选择第一个 Maven Helper,点击Install安装,弹出面板中点击Accept
  4. 重启IDEA

依赖管理

使用坐标导入jar包 

  1. 在pom.xml中编写<dependencies> 标签
  2. 在<dependencies>标签中使用<dependency>引入坐标
  3. 定义坐标的groupld,artifactld,version
  4. 点击刷新按钮,使坐标生效

        设置自动导入:选择IDEA中File --> Settings,在弹出的面板中找到Build Tools,选择Any changes,点击ok即可生效。

        快捷导包:在pom.xml中按alt + insert 选择Dependency,在弹出的面板中搜索对应坐标,然后双击选中对应坐标,点击刷新按钮,使坐标生效。

依赖范围

        通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境。

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13</version>
    <scope>test</scope>
</dependency>
依赖范围编译classpath测试classpath运行classpath例子
compileYYYlogback
test-Y-Junit
providedYY-servlet-api
runtime-YYjdbc驱动
systemYY-存储在本地的jar包
import引入DependencyManagement

        <scope>默认值:compile

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

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

相关文章

Elasticsearch查询报错 Result window is too large

一现象&#xff1a; es数据分页查询前端提示系统异常&#xff0c;后端报错日志 二根本原因&#xff1a; 默认情况下&#xff0c;Elasticsearch 限制了 from size 参数的组合不能超过 10,000 条记录&#xff0c;用于防止查询大数据集时对系统资源的过度消耗 三解决办法&#…

JavaSE——面向对象基础(1/4)-面向对象编程、程序中的对象、对象的产生、对象的执行原理、类和对象的一些注意事项

目录 面向对象编程 程序中的对象 对象的产生 对象的执行原理 类和对象的一些注意事项 面向对象编程 开发一个一个的对象&#xff0c;把数据交给对象&#xff0c;再调用对象的方法来完成对数据的处理。 例如设计一个学生的对象&#xff0c;其中有姓名和成绩等&#xff0c…

可视化视频监控平台EasyCVR如何配置服务参数以免getbaseconfig接口信息泄露?

可视化云监控平台/安防视频监控系统EasyCVR视频综合管理平台&#xff0c;采用了开放式的网络结构&#xff0c;平台支持高清视频的接入和传输、分发&#xff0c;可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集…

【.NET Core】C#编程规范

【.NET Core】C#编程规范 文章目录 【.NET Core】C#编程规范一、概述1.1 结构清晰第一1.2 简洁之风1.3 代码风格保持一致性 二、命名约定三、类型参数命名指南3.1 请使用描述性名称命名泛型类型参数&#xff0c;除非单个字面名称完全具有自我说明性且描述性名称不会增加任何作用…

Redis(03)——发布订阅

基础命令 基于频道 publish channel message&#xff1a;将信号发送到指定的频道pubsub subcommand [argument [argyment]]&#xff1a;查看订阅或发布系统状态subscribe channel [channel]&#xff1a;订阅一个或多个频道的信息unsubscribe [channel [channel]]&#xff1a;退…

CSS:BFC

BFC&#xff0c;Block Formatting Context&#xff0c;块级格式化上下文&#xff0c;是一个独立的渲染区域或隔离的独立容器&#xff0c;它决定了其子元素如何布局&#xff0c;并且与这个区域外部的元素无关。 形成 BFC 的条件 float 的值不为 none&#xff08;left、right&a…

【Node.js和Appium server的下载安装步骤】

Node.js 是JavaScript的运行环境&#xff0c;是 JS 语言的解释器&#xff0c;之中集成了npm库。 npm 是世界上最大软件包仓库&#xff0c;可用于Appium server安装。 1、Node.js官方安装包及源码下载地址&#xff1a;Node.js 选择相应系统的安装包进行下载&#xff08;.msi用…

c编译器学习02:chibicc文档翻译

目的 先粗略地看一遍作者的书籍。 原文档地址 https://www.sigbus.info/compilerbook# “低レイヤを知りたい人のためのCコンパイラ作成入門” 为想了解底层的人准备的C编译器制作入门 Rui Ueyama ruiucs.stanford.edu 2020-03-16 作者简介 https://www.sigbus.info/ 植山…

知识蒸馏实战代码教学二(代码实战部分)

一、上章原理回顾 具体过程&#xff1a; &#xff08;1&#xff09;首先我们要先训练出较大模型既teacher模型。&#xff08;在图中没有出现&#xff09; &#xff08;2&#xff09;再对teacher模型进行蒸馏&#xff0c;此时我们已经有一个训练好的teacher模型&#xff0c;所以…

C++ 二分模版 数的范围

给定一个按照升序排列的长度为 n 的整数数组&#xff0c;以及 q 个查询。 对于每个查询&#xff0c;返回一个元素 k 的起始位置和终止位置&#xff08;位置从 0 开始计数&#xff09;。 如果数组中不存在该元素&#xff0c;则返回 -1 -1。 输入格式 第一行包含整数 n 和 q &…

QT串口通讯上位机_数据超时接收功能及定时发送功能设计

目录 1.概述2.本次内容最终实现3.代码部分4.完整工程文件下载 1.概述 基于《串口开发基础》 在该基础上增加超时时间接收功能&#xff0c;加入定时器循环&#xff1b; 例如&#xff0c;接收数据开始后&#xff0c;在100ms内未接收到任何数据&#xff0c;视作本次数据接收结束&…

数据结构第3章 串

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 本篇笔记整理&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 0、思维导图1、基本概念1&#xff09;主…

Java+SpringBoot:农业疾病防治新选择

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

NBlog个人博客部署维护过程记录 -- 后端springboot + 前端vue

项目是fork的Naccl大佬NBlog项目&#xff0c;页面做的相当漂亮&#xff0c;所以选择了这个。可以参考2.3的效果图 惭愧&#xff0c;工作两年了也没个自己的博客系统&#xff0c;趁着过年时间&#xff0c;开始搭建一下. NBlog原项目的github链接&#xff1a;Naccl/NBlog: &#…

leetcode(动态规划)53.最大子数组和(C++详细解释)DAY12

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 提示 2.解答思…

Sora一出 哪里又要裁员了?

上班前夕迎来大新闻&#xff0c;那就是Sora了&#xff0c;Sora是什么&#xff0c;有什么牛逼之处&#xff0c;怎么实现的&#xff0c;我们跟着官方文档透露出来的一点点信息&#xff0c;简单的捋一捋。 一、Sora是什么 官方给出的定义是&#xff1a;世界模拟器。这很明显有夸大…

数据结构:动态内存分配+内存分区+宏+结构体

一、作业 1.定义一个学生结构体&#xff0c;包含结构体成员&#xff1a;身高&#xff0c;姓名&#xff0c;成绩&#xff1b;定义一个结构体数组有7个成员&#xff0c;要求终端输入结构体成员的值&#xff0c;根据学生成绩&#xff0c;进行冒泡排序。 #include <stdio.h>…

Qt C++春晚刘谦魔术约瑟夫环问题的模拟程序

什么是约瑟夫环问题&#xff1f; 约瑟夫问题是个有名的问题&#xff1a;N个人围成一圈&#xff0c;从第一个开始报数&#xff0c;第M个将被杀掉&#xff0c;最后剩下一个&#xff0c;其余人都将被杀掉。例如N6&#xff0c;M5&#xff0c;被杀掉的顺序是&#xff1a;5&#xff…

如何利用Idea创建一个Servlet项目(新手向)

&#x1f495;"Echo"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;如何利用Idea创建一个Servlet项目(新手向) Servlet是tomcat的api,利用Servlet进行webapp开发很方便,本文将介绍如何通过Idea创建一个Servlet项目(一共分为七步,这可能是我们写过的…

备战蓝桥杯---动态规划(应用1)

话不多说&#xff0c;直接看题&#xff1a; 首先我们考虑暴力&#xff0c;用二维前缀和即可&#xff0c;复杂度为o(n^4). 其实&#xff0c;我们不妨枚举任意2行&#xff0c;枚举以这个为边界的最大矩阵。 我们把其中的每一列前缀和维护出来&#xff0c;相当于把一个矩阵压缩成…