Java | Maven(知识点查询)
文章目录
- Maven知识速查
- 1. Maven概述
- 2. Maven的作用
- 3. Maven的下载
- 4. Maven的环境配置
- 5. Maven 的基础组成
- 5.1 Maven仓库
- 5.1.1 本地仓库配置:
- 5.1.2 中央仓库配置:
- 5.1.3 镜像仓库配置
- 5.2 Maven坐标
- 6. Maven项目
- 6.1 手工创建Maven项目
- 6.2 自动构建项目
- 7. Maven依赖管理
- 7.1 依赖配置(版本规范)
- 7.2 依赖传递
- 7.3 可选依赖(不展示)
- 7.4 排除依赖(不需要)
- 7.5 依赖范围
- 7.6 依赖范围传递
- 8. Maven生命周期与插件
- 8.1 Maven生命周期
- 8.2 Maven插件
Maven知识速查
1. Maven概述
- Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
- POM(Project Object Model):项目对象模型
2. Maven的作用
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的、统一的项目结构(如下图:)
3. Maven的下载
- 官网:http://maven.apache.org/
- 下载地址:http://maven.apache.org/download.cgi
注:IDEA新版的直接自带Maven版本,用自带的也比较好。不然配置繁琐。
4. Maven的环境配置
- 依赖 Java,需要配置 JAVA HOME。
- 设置 MAVEN 自身的运行环境,需要配置 MAVEN_HOME
- 在Path中配置Maven的执行程序的路径(相信各位老道的 Java 选手已经会了)
- 测试环境配置结果:
MVN
5. Maven 的基础组成
5.1 Maven仓库
-
仓库:用于储存 Jar 包,供给 Java 项目使用。
-
仓库分类:
-
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
-
远程仓库:非本机电脑上的仓库,为本地仓库提供资源
-
中央仓库:Mavenl团队维护,存储所有资源的仓库(https://repo1.maven.org/maven2/)
-
私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
-
-
-
私服的作用:
- 保存具有版权的资源,包含购买或自主研发的jar
- 中央仓库中的jar都是开源的,不能存储具有版权的资源
- 一定范围内共享资源,仅对内部开放,不对外共享
- 保存具有版权的资源,包含购买或自主研发的jar
5.1.1 本地仓库配置:
Maven,启动后,会自动保存下载的资源到本地仓库
< --! 默认位置>
<localRepository>${user.home}/.m2/repository</localRepository>当前目录位置为登录用户名所在目录下的.m2文件夹中
<--! 自定义位置>
<localRepository>D:\maven\repository</localRepository>当前目录位置为D:maven repository.文件夹中
5.1.2 中央仓库配置:
- 在路径:C:\Users\ljcg.m2\settings.xml 中修改配置
<repositories><repository><id>central</id><name>Central Repository</name><url>https://repo.maven.apache.org/maven2</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots></repository>
</repositories>
5.1.3 镜像仓库配置
- 在路径:C:\Users\ljcg.m2\settings.xml 中修改配置
<mirrors><!-- 配置具体的仓库的下载镜像 --><mirror><!-- 此镜像的唯一标识符,用来区分不同的nirror元素 --><id>nexus-aliyun</id><!-- 对哪种仓库进行镜像,简单说就是替代哪个仓库 --><mirrorOf>central</mirrorOf><!-- 镜像名称 --><name>Nexus aliyun</name><!-- 镜像URL --><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>
</mirrors>
5.2 Maven坐标
- 坐标:Mavent中的坐标用于描述仓库中资源的位置(https://repo1.maven.org/maven2/)
- 坐标的组成:
groupld(组织ID):定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis)
artifactld(项目ID):定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
version(版本号):定义当前项目版本号
packaging:定义该项目的打包方式
- 坐标的作用:使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
6. Maven项目
6.1 手工创建Maven项目
- Maven工程目录
- 在src同层目录下创建pom.xml
<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"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>untitled</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>untitled</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>
6.2 自动构建项目
- Tomcat7运行插件:
<build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins>
</build>
7. Maven依赖管理
7.1 依赖配置(版本规范)
- 在 pom.xml 文件中安装所需要的依赖
- 格式:
<!-- 设置当前项目所有依赖 -->
<dependencies><!-- 设置具体需要的依赖 --><dependency><!-- 依赖所属群组 --><groupId>junit</groupId><!-- 依赖所属项目 --><artifactId>junit</artifactId><!-- 依赖版本 --><version>4.12</version></dependency>
</dependencies><!-- 版本规范 -->
– SNAPSHOT:开发版本,表示该版本仍在开发中,可能会频繁改变。
– RELEASE:发布版本,表示该版本为稳定版本,很少改变。(非SNAPSHOT的就是RELEASE)
– ALPHA:内部测试版本,一般不供外部使用。
– BETA:公开测试版本,可供外部测试并提供反馈。
7.2 依赖传递
- 依赖具有传递性
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
- 依赖传递冲突问题
- 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
- 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
- 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
7.3 可选依赖(不展示)
- 可选依赖指对外隐藏当前所依赖的资源一一不透明
- 格式:
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><!-- 隐藏配置 --><optional>true</optional>
</dependency>
7.4 排除依赖(不需要)
- 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本一一不需要
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><!-- 依赖排出配置 --><exclusions><exclusion><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId></exclusion></exclusions>
</dependency>
7.5 依赖范围
- 依赖的jar默认情况可以在任何地方使用,可以通过 scope 标签设定其作用范围
- 格式:
<scope>compile</scope>
- 作用范围:
- 主程序范围有效(main文件夹范围内)
- 测试程序范围有效(test文件夹范围内)
- 是否参与打包(package指令范围内)
7.6 依赖范围传递
- 带有依赖范围的资源在进行传递时,作用范围将受到影响
8. Maven生命周期与插件
8.1 Maven生命周期
- Maven构建生命周期描述的是一次构建过程经历经历了多少个事件
8.2 Maven插件
- 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
- 默认maven在各个生命周期上绑定有预设的功能
- 通过插件可以自定义其他功能
<!-- 自定义插件 -->
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><goals><!-- 可以多个构建包 web项目是:war--><goal>jar</goal><goal>test-jar</goal></goals><!-- 生命流程 --><phase>generate-test-resources</phase></execution></executions></plugin></plugins>
</build>
相关文章:
Java | Maven(知识点查询)
文章目录 Maven知识速查1. Maven概述2. Maven的作用3. Maven的下载4. Maven的环境配置5. Maven 的基础组成5.1 Maven仓库5.1.1 本地仓库配置:5.1.2 中央仓库配置:5.1.3 镜像仓库配置 5.2 Maven坐标 6. Maven项目6.1 手工创建Maven项目6.2 自动构建项目 7…...
Vmware 静态网络配置
概述 仅主机模式(VMware1):使用host-only的方式是不能和外界通信的,只能够和本机的物理网卡通信 桥接(VMnet0):使用桥接的方式使得自己的虚拟机和自己的真实机网卡在同一个网段 NAT࿰…...
【数据结构--八大排序】之希尔排序
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
Linux中生成so库的文件引用另一个so库问题的解决
文章目录 一、问题介绍二、问题解决 一、问题介绍 由于项目需求,需要将一个“编译时引用了另一个动态链接库”的文件(名为main.c),再编译成一个动态链接库。 简要说明一下,即原本的项目代码里,包含main.c…...
EDI是连接原始电子商务和现代电子商务的纽带
EDI是连接原始电子商务和现代电子商务的纽带。 EDI(Electronic Data Interchange,电子数据交换)是一种电子通信技术,用于在不同组织之间以结构化和标准化的方式交换业务文档和数据。EDI使企业能够更有效地与供应商、客户和合作伙…...
星宿UI2.4资源付费变现小程序源码 支持流量主
第一个小程序为星宿小程序 目前是最新版2.0 搭建星宿需要:备用域名 服务器 微信小程序账号 功能:文章展示 文章分类 资源链接下载 轮播图 直接下载附件功能 很多 很适合做资源类分享 源码下载:https://download.csdn.net/download/m0_6604…...
代码随想录训练营二刷第四十六天 | 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ
代码随想录训练营二刷第四十六天 | 518. 零钱兑换 II 377. 组合总和 Ⅳ 一、518. 零钱兑换 II 题目链接:https://leetcode.cn/problems/coin-change-ii/ 思路:完全背包求组合数,递推公式dp[j]dp[j-nums[i]]。 求组合数,物品在外…...
python安装第三方模块方法
正常情况下安装python第三方模块没啥说的,但是由于python安装模块默认是在外网下载安装,牵扯外网网速问题,所以可以配置下使用国内某镜像源来下载模块 python -m pip install xxxxxxxxxxx 和 pip install xxxxxxxxxx 的命令都可下载安装第三…...
广西小贷公司设立及小贷牌照申请政策要求
关于广西小额贷款公司设立及小贷牌照申请,依据《关于小额贷款公司试点的指导意见》(银监发〔2008〕23号);《广西壮族自治区小额贷款公司管理办法》(桂政发〔2009〕71号);《广西壮族自治区人民政…...
PyTorch应用实战二:实现卷积神经网络进行图像分类
文章目录 实验环境MNIST数据集1.网络结构2.程序实现2.1 导入相关库2.2 构建卷积神经网络模型2.3 加载MNIST数据集2.4 训练模型 附:系列文章 实验环境 python3.6 pytorch1.8.0 import torch print(torch.__version__)1.8.0MNIST数据集 MNIST数字数据集是一组手写…...
面试系列 - Java常见算法(二)
目录 一、排序算法 1、插入排序(Insertion Sort) 2、归并排序(Merge Sort) 二、图形算法 1、最短路径算法(Dijkstra算法、Floyd-Warshall算法) Dijkstra算法 Floyd-Warshall算法 2、最小生成树算法&…...
Cortex-A9 架构
一、Cortex-A 处理器运行模式 Cortex-A9处理器有 9中处理模式,如下表所示: 九种运行模式 在上表中,除了User(USR)用户模式以外,其它8种运行模式都是特权模式,在特权模式下,程序可以访问所有的系统资源。这…...
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
前言:昨天我们学习了C语言中循环结构程序设计,并分析了循环结构的特点和实现方法,有了初步编写循环程序的能力,那么今天我们通过一些例子来进一步掌握循环程序的编写和应用。 💖 博主CSDN主页:卫卫卫的个人主页 💞 &am…...
UGUI交互组件Toggle
一.Toggle对象的构造 Toggle和Button类似,是交互组件的一种 如果所示,通过菜单创建了两个Toggle,Toggle2中更换了背景和标记资源 对象说明Toggle含有Toggle组件的对象Background开关背景Checkmark开关选中标记Label名称文本 二.Toggle组件属…...
亲,您的假期余额已经严重不足了......
引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 转眼八天长假已经接近尾声了,今天来总结一下大家的假期,聊一聊假期关于学习的看法,并预估一下大家节后大家上班时的样子。 1.放假前一天 即将迎来八天…...
【软件测试】自动化测试selenium(一)
文章目录 一. 什么是自动化测试二. Selenium的介绍1. Selenium是什么2. Selenium的特点3. Selenium的工作原理4. SeleniumJava的环境搭建 一. 什么是自动化测试 自动化测试是指使用软件工具或脚本来执行测试任务的过程,以替代人工进行重复性、繁琐或耗时的测试活动…...
Nginx实现动静分离
一、概述 1、什么是动静分离 动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。 动静分离简单的概…...
【算法题】309. 买卖股票的最佳时机含冷冻期
题目: 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 卖出股票后,你无法在…...
1951-2011年长序列高时空分辨率月尺度温度和降水数据集
简介 长序列高时空分辨率月尺度温度和降水数据集,基于中国及周边国家共1153个气温站点和1202个降水站点数据,利用ANUSPLIN软件插值,重建了1951−2011年中国月值气温和降水量的高空间分辨率0.025(~2.5km)格点数据集&am…...
十天学完基础数据结构-第六天(树(Tree))
树的基本概念 树是一种层次性的数据结构,它由节点组成,这些节点按照层次关系相互连接。树具有以下基本概念: 根节点:树的顶部节点,没有父节点。 子节点:树中每个节点可以有零个或多个子节点。 叶节点&am…...
RobotFramework流程控制(最新版本)
文章目录 一 分支流程1. 关键字:Run Keyword If2. 关键字:IF/ELSE3. 嵌套IF/ELSE4. 关键字:Set Variable If 二 循环流程1. 普通FOR循环2. 嵌套FOR循环3. 退出循环4. 其它常用循环 一 分支流程 1. 关键字:Run Keyword If Run Key…...
win11 好用的 快捷方式 --chatGPT
gpt: Windows 11引入了许多新的功能和改进,同时也包括一些实用的快捷方式和功能。以下是一些Windows 11中的常用快捷方式: 1. **Win D**:最小化或还原所有打开的窗口,显示桌面。 2. **Win E**:打开文件资源管理器…...
在大数据相关技术中,HBase是个分布的、面向列的开源数据库,是一个适合于非结构化数据存储的数据库。
HDFS,适合运行在通用硬件上的分布式文件系统,是一个高度容错性的系统,适合部署在廉价的机器上。Hbase,是一个分布式的、面向列的开源数据库,适合于非结构化数据存储。MapReduce,一种编程模型,方…...
910数据结构(2020年真题)
算法设计题 问题1 现有两个单链表A和B,其中的元素递增有序,在不破坏原链表的情况下,请设计一个算法,求这两个链表的交集,并将结果存放在链表C中。 (1)描述算法的基本设计思想; (2)根据设计思想࿰…...
MyBatisPlus(八)范围查询
说明 范围查询,包括: 大于大于等于小于小于等于在范围内在范围外 大于:gt 代码 Testvoid gt() {LambdaQueryWrapper<User> wrapper new LambdaQueryWrapper<>();wrapper.gt(User::getAge, 20);List<User> users mapp…...
【day10.04】QT实现TCP服务器客户端搭建的代码
服务器: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个服务器server new QTcpServer(this);//此时,服务器已经成功进入…...
milvus 结合Thowee 文本转向量 ,新建表,存储,搜索,删除
1.向量数据库科普 【上集】向量数据库技术鉴赏 【下集】向量数据库技术鉴赏 milvus连接 from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection, utility connections.connect(host124.****, port19530)2.milvus Thowee 文本转向量 使用 …...
GEO生信数据挖掘(三)芯片探针ID与基因名映射处理
检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 目录 处理一个探针对应多个基因 1.删除该行 2.保留分割符号前面的第一个基因 处理多个探针对应一个基因 详细代码案例一删除法 详细代码案例二 多个基因名时保留第一个基因名…...
力扣 -- 96. 不同的二叉搜索树
解题步骤: 参考代码: class Solution { public:int numTrees(int n) {vector<int> dp(n1);//初始化dp[0]1;//填表for(int i1;i<n;i){for(int j1;j<i;j){//状态转移方程dp[i](dp[j-1]*dp[i-j]);}}//返回值return dp[n];} }; 你学会了吗&…...
经典算法-枚举法(百钱买百鸡问题)
题目: 条件:现有 100 元,一共要买公鸡、母鸡、小鸡三种鸡,已知公鸡 5 元一只,母鸡 3 元一只,1 元可以买三只小鸡。 要求:公鸡、母鸡、小鸡都要有,一共买 100 只鸡。有哪几种买法&am…...
wap网站自动/最新热点新闻
在启动tomcat的start.bat时报了这个错误 The CATALINA_HOME environment variable is not defined correctly.This environment variable is needed to run this program 1 这个问题一般出现于CATALINA_HOME、JAVA_HOME的环境变量配置错误,例如结尾的路径包含多余的…...
国外最新创意产品网站有哪些方面/信阳seo优化
zabbix模板是做什么的? 平时工作中,我们需要监控web、mysql、redis、nginx这些服务器,众多服务器的业务都是一样的,所以我们只要事先创建好模板,然后所有服务器链接这个模板即可,如果后续有修改、新增功能,…...
建设银行网站用户名更改/互联网广告销售好做吗
html网页制作里设置字体和大小的语句有吗?是什么?HTML Table这是size 5的文字大小这是标楷体的文字字型呈现结果诚如第一段所说,若要符合最新的HTML5网页设计标准,表格内的文字大小与字型就必须使用css来设计,范例二就提供这样的设计方式&…...
网站模板怎么修改教程/软文发布推广平台
作者 | yanwei来源 | 墨天轮 https://www.modb.pro/db/95684大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Linux7.9 安装 Oracle19c RAC 详细配置方案,欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达…...
网站建设基础策划书/自己建网站怎样建
1.引入mybatis-starter 2. 配置application.yaml中,指定mapper-location位置即可 3. 编写Mapper接口并标注Mapper注解com.liang.webadmin.mapper.CityMapper 4. 编写实现接口类。com.liang.webadmin.service.CityService 5. 简单方法直接注解方式com.liang.webadmin…...
咸阳市网站建设公司/软文广告推广
首先计算出s数组,s表示可以重复的前缀等于后缀的个数,显然有s[i]s[next[i]]1,因为有且仅有next的next满足这个条件。 然后直接暴力枚举所有next,直到它小于i的一半,这个时间复杂度就是o(n)的 1 #include<bits/stdc.…...