Javaweb学习路线(2)——Maven

news2024/11/16 19:27:03

一、概念
Maven 是 apache 旗下的一个开源项目,是一款用于管理和构建java项目的工具。

二、作用

  • 依赖管理: 动态管理jar包,避免版本冲突。
  • 统一项目结构: 提供标准、统一的项目结构。
  • 项目构建: 标准跨平台的自动化项目构建方式。

Maven创建的项目结构

在这里插入图片描述
三、使用

(一)官方网站: https://maven.apache.org/
(二)Maven库: https://mvnrepository.com/
(三)Maven构建项目图
在这里插入图片描述
其中,仓库分为本地仓库,中央仓库,远程仓库三种

  • 本地仓库: 存储在本机上的maven目录
  • 中央仓库: 由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
  • 远程仓库: 一般是由公司团队搭建的私有仓库。

(四)安装使用
1、解压apache-maven-3.6.1-bin.zip。
2、配置本地仓库:修改 conf/setting.xml 中的 为一个指定目录。

<localResponsitory>maven压缩位置\mvn_repo</localResponsitory>

3、配置阿里云镜像:修改conf/setting.xml 中的 <mirrors> 标签,为其添加子标签。

<mirror>
	<id>alimaven</id>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>central</mirrorOf>
</mirror>

4、配置环境变量:MAVEN_HOME 为maven的解压目录,将bin目录加入PATH环境变量。

四、IDEA集成Maven

(一)配置Maven环境(局部)

  • 1、选择IDEA菜单File - Setting - Build, Excution, Deployment - Build Tools - Maven
  • 2、设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径
    在这里插入图片描述
    3、查看JRE版本以及字节码版本是否为当前版本在这里插入图片描述
    在这里插入图片描述
    (二)全局配置Maven环境
    在这里插入图片描述
    Maven坐标的组成: gourpId+artifactId+version
  • gourpId:定义当前Maven项目隶属组织名称(通常为域名反写,例如com.baidu)
  • artifactId:定义当前Maven项目名称(通常是模块名,例如order-service、goods-service)
  • version:当前项目版本号

(三)导入Maven项目

注意:一定是导入pom.xml文件,而不是整个文件。

在这里插入图片描述
五、依赖配置

(一)依赖: 指当前项目运行所需要的jar包,一个项目可以引入多个依赖。
(二)配置:

  • 1、在pom.xml编写 <dependencies> 标签
  • 2、在<dependencies> 标签内 使用 <dependency> 引入坐标
  • 3、定义坐标的groupId,artifactId,version
  • 4、刷新Maven,引入最新坐标
    <dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

当没有刷新时引用新依赖图

在这里插入图片描述

刷新后引用新依赖图

在这里插入图片描述
六、依赖传递

(一)概念: 依赖传递指的是当前依赖引用的某个依赖中含有多个其它依赖时,则另外未在当前依赖声明的依赖也被加载。(父依赖没有这个插件,子依赖怎么会有呢?)

(二)排除依赖: 主动断开依赖资源,被排除的资源无需指定版本。(在本人看来,排除依赖非常的麻烦,因为需要知晓子依赖有什么依赖,并且还要根据需要排除依赖)使用 <exclusions>-<exculusion>进行排除。

七、依赖范围

(一)依赖的范围: 依赖默认范围为main,即主程序有效,通过 <scope>…<scope> 设置范围。

范围说明范例
compile任意程序中都有效(默认)log4j
test测试程序有效junit
provided主程序和测试程序有效servlet-api
runtime运行程序和打包程序有效jdbc驱动

八、依赖的生命周期

(一)概念: 依赖的生命周期是为了对所有的Maven项目构建过程进行抽象和统一。

(二)相互独立的生命周期

生命周期说明
clean清理工作
default核心工作。例如:编译、测试、打包、安装、部署等
site生成报告、发布站点等

(三)重要生命周期阶段(执行顺序排列)

  • clean周期
    • clean阶段: 移出上次构建生成的文件(例如字节码文件等等)
  • default周期
    • complile阶段: 编译项目源代码
    • test阶段: 使用合适的单元测试框架进行测试(Junit)
    • package阶段: 将编译后的文件打包。例如jar、war
    • install阶段: 安装项目到本地仓库

(四)执行生命周期

  • 方法一:IDEA集成了依赖的生命周期,所以可以直接打开Maven-Lifecycle-选择生命周期。
  • 方法二:命令行:输入命令 【mvn complie】

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

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

相关文章

深入探讨软件测试的质量度量指标

本文的目的是介绍项目中使用到主要质量指标&#xff0c;这些质量指标可以分为以下三类&#xff1a; 质量保证过程指标生产事故管理指标度量质量文化指标 质量保证过程指标 质量保证指标可以通过测试覆盖率来度量功能和非功能测试的覆盖率&#xff0c;同时也可以根据测试发现…

shell学习记录(函数)

Shell 函数 linux shell 可以用户定义函数&#xff0c;然后在shell脚本中可以随便调用。 shell中函数的定义格式如下&#xff1a; [ function ] funname [()] { action; [return int;] } 说明&#xff1a; 1、可以带function fun() 定义&#xff0c;也可以直接fun()…

对“java子类不能继承父类构造方法“的理解

目录 子类构造函数&#xff0c;什么时候需要写&#xff0c;什么时候可以不写&#xff1f;为什么要这么设计&#xff1f;子类已经继承父类&#xff0c;为什么就不能继承父类的构造器了&#xff1f;子类直接用父类的构造器不就行了&#xff1f; 子类构造函数&#xff0c;什么时候…

今年适合进入软件测试行业吗?

对于“自己适不适合转行做软件测试&#xff1f;”一直都是测试行业里的热门话题。随着近几 年IT互联网行业的快速发展&#xff0c;软件测试岗位也受到越来越多人的关注&#xff0c;因此有很多人都想要从事这一行业&#xff0c;这里主要分为两类人&#xff0c;一种是刚毕业的应届…

【Deno】极简入门

极简系列 极简入门 简介 Deno是一个 JavaScript/TypeScript 的运行时&#xff0c;默认使用安全环境执行代码&#xff0c;有着卓越的开发体验。 Deno建立在 V8、Rust 和 Tokio 的基础上。 优势 适合不喜欢复杂配置开箱即用的人群&#xff08;如本人小溪&#xff09; 安全性…

《微服务实战》 第三十一章 ShardingSphere - ShardingSphere-JDBC

前言 Apache ShardingSphere 是一款分布式的数据库生态系统&#xff0c; 可以将任意数据库转换为分布式数据库&#xff0c;并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。 Apache ShardingSphere 设计哲学为 Database Plus&#xff0c;旨在构建异构数据库上层的…

Spring-Bean基础

文章目录 什么是 BeanDefinition如何获取BeanDefinition如何将BeanDefinition注册到容器中Bean的初始化操作Bean的销毁操作 什么是 BeanDefinition BeanDefinition 是 Spring Framework 中定义 Bean 的配置元信息接口&#xff0c;包含如下信息&#xff1a; 如何获取BeanDefin…

STL学习笔记

STL学习笔记 Vector void VectorTest() {vector<int> vect;vect.push_back(1);vect.push_back(20);vect.push_back(12);vect.push_back(12);vect.push_back(12);sort(vect.begin(),vect.end());for(vector<int>::iterator itervect.begin();iter!vect.end();iter…

osg利用setNodeMask和Switch隐藏节点用法说明

目录 1. 用法及差异点说明 2.利用NodeMask隐藏节点 2. Switch节点 3. NodeMask和Switch混用 1. 用法及差异点说明 在osg中使Node隐藏方式有两种&#xff0c;一种是设置NodeMask&#xff0c;另外一种是使用osg的Switch类来控制。两者的区别&#xff1a;前者只是看不到&#…

Java实现文件分片上传

文章目录 Java实现文件分片上传为什么要使用分片上传什么是分片上传&#xff1f;前后端代码 Java实现文件分片上传 为什么要使用分片上传 在需要上传文件时&#xff0c;不可避免地会遇到上传文件内容过大&#xff0c;上传时间太长地问题&#xff0c;采用文件分片上传就可以解…

ARM-M架构移植UCOS操作系统

最近准备面试&#xff0c;把本科到现在的一些比赛相关的东西整理一下。那些年在飞思卡尔在K60单片机上的UCOSII移植&#xff08;哎&#xff0c;心酸...&#xff09; 一、首先看下UCOSII的文件结构&#xff1a; 一些核心的文件解释&#xff1a; 【1、头文件】&#xff1a; inclu…

SQL多表查询常用语句总结

一、多表关系 &#xff08;一&#xff09;概述 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构之间也存在着各种联系&#xff0c;…

【MySQL】数据库中表的操作

表的操作 一、创建表 --- create table 表名(列名 类型 ...);1.1 创建表的案例 二、查看表2.1 查看选中数据库的所有表 --- show tables;2.2 查看&#xff08;描述&#xff09;表结构 --- desc 表名;2.3 查看建表信息 --- show create table 表名 \G 三、修改表 --- alter3.1 修…

说说我认为的AI和人类的未来

今天闲来无事&#xff0c;花了半天时间部署了一个Stable Diffusion的开源AI生成图片程序&#xff0c;因为电脑配置的原因&#xff0c;找了一个小模型集测试了一下效果&#xff0c;总的来说还是挺震惊的。上图是通过输入&#xff1a;长发美女森林漫步红色裙子 这三个关键词后花了…

useEffect的基础知识和底层机制

useEffect 是 React 中一个重要的 Hook&#xff0c;用来处理组件的副作用操作。它的基础知识包括两个方面&#xff1a;执行时机和参数。 执行时机&#xff1a; useEff ect 的执行时机包括两种情况&#xff1a; 组件挂载时&#xff0c;即第一次渲染之后。组件更新时&#xff…

pandas---Series与DataFrame索引、切片;多层索引、索引的堆叠

1. Series的索引和切片 1.1 Series的索引&#xff1a; 可以使用中括号取单个索引&#xff08;此时返回的是元素类型&#xff09;&#xff0c;或者中括号里一个列表取多个索引&#xff08;此时 返回的仍然是一个Series类型&#xff09;。分为显示索引和隐式索引&#xff1a; …

后台服务接口间大文件的流式发送和读取

文章目录 介绍代码设计代码参考客户端代码服务器端代码测试实例 介绍 使用HTTP协议进行数据流式传输是一种常见的方法。对于大文件数据传输可以使用HTTP的chunked编码或使用多部分响应来实现数据流式传输。 【HTTP的chunked编码】在发送数据的服务中&#xff0c;可以将数据切分…

postman接口测试学习笔记(非常详细)

目录 引言 1. 资源 2.接口测试 3. 接口返回数据和JSON详解 4.接口测试协议 5.企业接口测试的流程和方案 6. 接口测试工具以及Postman介绍 7.Postman之内置的动态参数和应用 8.接口关联 引言 接口测试工具如何选择&#xff1f;在我看来&#xff0c;Postman是一个非常值…

电商--红包活动总结

文章目录 背景表结构设计实现流程流程图流程解析流程优化 背景 这是一个来自于NFT电商项目&#xff0c;这是个营销策略的需求&#xff0c;为了快狠准&#xff0c;短期内刺激消费&#xff0c;拉动销售增加购买量。运营人员可以在平台创建红包&#xff0c;并且设置该红包的发放时…