Java课题笔记~Maven基础知识

news2024/11/18 8:17:03

 一、什么是Maven?

Maven是专门用于管理和构建Java项目的工具。

它的主要功能有:

  1. 提供了一套标准化的项目结构
  2. 提供了一套标准化的构建流程(编译,测试,打包,发布……
  3. 提供了一套依赖管理机制

1、标准化的项目结构

 

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

2、标准化的构建流程

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

3、依赖管理

依赖管理其实就是管理你项目所依赖的第三方资源 (jar包、插件…)。

常见的项目构建工具:

 

 

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

二、Maven 简介

Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。

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

Maven 作用:

  1. 标准化的项目结构
  2. 标准化的构建流程
  3. 方便的依赖管理

Maven 模型:

 

 仓库分类:

  • 本地仓库:自己计算机上的一个目录
  • 中央仓库:由Maven团队维护的全球唯一的仓库
  • 远程仓库(私服):一般由公司团队搭建的私有仓库

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包

如果有,则在项目直接引用;
如果没有,则去中央仓库中下载对应的jar包到本地仓库。

还可以搭建远程仓库,将来jar包的查找顺序则变为:
本地仓库 >远程仓库 >中央仓库

 三、Maven 安装配置

步骤
Maven安装配置
1.解压apache-maven-3.6.1.rar 既安装完成
2.配置环境变量:MAVEN_HOME 为安装路径,在Path添加%MAVEN_HOME%/bin目录

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

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

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

四、Maven 基本使用

Maven 常用命令

compile: 编译

clean:清理

test:测试

package: 打包

install: 安装

Maven 生命周期

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

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

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

 default 构建生命周期:

 五、IDEA 配置 Maven

1、IDEA 配置 Maven 环境


1、选择IDEA中 File--> Settings


2、搜索maven


3、设置IDEA使用本地安装的 Maven,并修改配置文件路径

 

 2、Maven 坐标详解

什么是坐标?

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

Maven 坐标主要组成?

  1. groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:comitheima)
  2. artifactld:定义当前Maven项目名称 (通常是模块名称,例如 order-service、goods-service)
  3. version:定义当前项目版本号

 3、IDEA 创建 Maven 项目

1.创建模块,选择Maven,点击Next

 

2.填写模块名称,坐标信息,点击finish,创建完成

 

3.编写 HelloWorld,并运行

4、IDEA 导入 Maven 项目

1.选择右侧Maven面板,点击 +号

 

2.选中对应项目的pom.xml文件,双击即可


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

 

5、配置 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、点击刷新按钮,使坐标生效

步骤
使用坐标导入 jar 包- 快捷方式

1、在pom.xml中按 alt + insert,选择 Dependency

 

2、在弹出的面板中搜索对应坐标,然后双击选中对应坐标

 

3、点击刷新按钮,使坐标生效

 使用坐标导入 jar 包一自动导入
1、选择IDEA中 File --> Settings

 

2、在弹出的面板中找到 Build Tools


3、选择Any changes,点击ok 即可生效

 

依赖范围

通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:

编译环境、测试环境、运行环境

 l<scope>默认值:compile

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

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

相关文章

python小游戏课程设计报告,python游戏课程设计报告

大家好&#xff0c;给大家分享一下python2048游戏课程设计报告&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01;

安装java11( 安装jdk11)记录

下载JDK11 国内华为镜像下载&#xff1a;https://repo.huaweicloud.com/java/jdk/11.0.29/injdk 镜像下载&#xff1a;https://www.injdk.cn/官网下载&#xff1a;https://www.oracle.com/java/technologies/downloads/#java11 个人使用华为镜像下载 安装 下载后上传至Lin…

用DBeaver进行数据备份与恢复

一、数据备份 1、选择需要备份的数据库或数据表&#xff0c;鼠标右击。 2、选择“工具-转存数据库” 3、勾选需要导出备份的数据库和数据表 可自行设置&#xff0c;这里直接点击开始&#xff1b; 导出完成 二、数据恢复 1、选择需要恢复的数据库或数据表&#xff0c;鼠标右…

数学建模学习(8):单目标和多目标规划

优化问题描述 优化 优化算法是指在满足一定条件下,在众多方案中或者参数中最优方案,或者参数值,以使得某个或者多个功能指标达到最优,或使得系统的某些性能指标达到最大值或者最小值 线性规划 线性规划是指目标函数和约束都是线性的情况 [x,fval]linprog(f,A,b,Aeq,Beq,LB,U…

【C语言】通讯录2.0 (动态增长版)

前言 通讯录是一种记录联系人信息的工具&#xff0c;包括姓名、电话号码、电子邮件地址、住址等。 文章的一二三章均于上一篇相同&#xff0c;可以直接看第四章改造内容。 此通讯录是基于通讯录1.0&#xff08;静态版&#xff09;的基础上进行改进&#xff0c;请先看系列文字第…

IPv4网络用户访问IPv6网络服务器

NAT64静态映射为一对一的对应关系&#xff0c;通常应用在IPv4网络主动访问IPv6网络的场景中。 要求位于IPv4网络中的PC通过IPv4地址1.1.1.10能够直接访问位于IPv6网络中Server。 操作步骤 配置FW。 # 配置接口GigabitEthernet 0/0/1的IPv4地址。 <FW> system-view [F…

MyBatis-Plus 分页插件实现分页查询

目录 1. 配置分页查询的拦截器 2. 使用 Page 对象实现分页功能 1. 配置分页查询的拦截器 因为 MyBatis-Plus 里面使用了分页插件来实现分页查询, 所以我们需要将 MyBatis-Plus 的插件添加到当前的项目里, 这样我们执行的查询操作才会生效. 创建 PageConfig 类: Configurat…

华为云hcip核心知识笔记(存储服务规划)

云上存储 &#xff1a; 云硬盘:基于分布式架构&#xff0c;可弹性扩展的虚拟块存储服务 注意事项 挂载云硬盘实例和云硬盘必须在同一区域&#xff0c;否则挂载失败文件存储服务&#xff1a;完全托管的共享文件存储 可以为多个实例实现共享访问&#xff0c;不同vpc中可以进行对…

用python需要下载软件吗,python需要安装哪些软件

大家好&#xff0c;本文将围绕安装python需要什么样的电脑配置展开说明&#xff0c;python需要安装哪些软件是一个很多人都想弄明白的事情&#xff0c;想搞清楚用python需要下载软件吗需要先了解以下几个事情。 编程这东西很神奇。对于那些知道如何有用和有趣的这个工具,对于Xi…

数字IC验证高频面试问题整理附答案(二)

近日后台有同学私信还想要验证的面试题目&#xff0c;这不就来了~ Q16.权重约束中”:”和”: /”的区别 : 操作符表示值范围内的每一个值的权重是相同的,比如[1:3]:40,表示1&#xff0c;2&#xff0c;3取到的概率为40/120&#xff1b; :&#xff0f;操作符表示权重要平均分到…

手把手教你在云环境炼丹(部署Stable Diffusion WebUI)

前几天写了一篇《手把手教你在本机安装Stable Diffusion秋叶整合包》的文章&#xff0c;有些同学反映对硬件的要求太高&#xff0c;显卡太TM贵了。今天我再分享一个云服务器炼丹的方法&#xff0c;方便大家快速入门上手&#xff0c;这个云服务不需要特殊网络设置&#xff0c;能…

【rtmp】2: rtmp 推送 annexb

参考RTMP协议封装H264和H265协议详解 大神分析rtmp推送的大部分是annexb的h264 因此,我们就以此为格式 转为rtmp avcc 推送到服务器端。 一般sps、pps 前面有4个 字节的起始码,所以要跳过,不要计算在sps pps 长度里。 对于视频,先发avc头 第一个 5个字节 第一个字节 0x17 ,…

source insight常用操作

1、窗口布局 SI窗口十分丰富&#xff0c;通过菜单栏View->Toolbars/panels选择显示那些工具栏/窗口 Source Insight 窗口介绍_sourceinsight窗口_STCNXPARM的博客-CSDN博客 2、RGB护眼色 Source Insight4.0字体大小及护眼背景配置_sourceinsight4背景色配置_ProYuan28的…

Let’s Encrypt 免费证书提示:(STAGING) Pretend Pear X1证书不受信任

通过Let’s Encrypt 免费申请证书&#xff0c;发现浏览器并不信任 原因 我使用了ACME V2 测试环境&#xff1a; https://acme-staging-v02.api.letsencrypt.org/directory 需要改为生产环境 https://acme-v02.api.letsencrypt.org/directory 测试环境有两个活跃的根证书…

vue中的require

vue中的require 一、基本概念二、具体演示1.引入json2.引入图片 三、require.context引入图片&#xff1a;引入json引入模块js&#xff1a;引入vue文件&#xff1a; 一、基本概念 require 是 node 中的一个方法&#xff0c;他的作用是 用于引入模块、 JSON、或本地静态文件。r…

快速开发框架若依的基础使用详解

Hi I’m Shendi 快速开发框架若依的基础使用详解 最近在为公司制作新的项目&#xff0c;经过了一段时间的技术沉淀&#xff0c;我开始尝试接触市面上用的比较多的快速开发框架&#xff0c;听的最多的当属若依吧 于是就选用了若依 介绍 为什么选&#xff1f;目的是为了提高开发…

【前端设计】尝试一文搞懂verilog parameter的全部细节

这里是尼德兰的喵芯片设计相关文章&#xff0c;欢迎您的访问&#xff01; 如果文章对您有所帮助&#xff0c;期待您的点赞收藏&#xff01; 让我们一起为成为芯片前端全栈工程师而努力&#xff01; 一个参数的标准定义呢应该是这样的&#xff1a; parameter type range name …

SHELL——备份脚本

编写脚本&#xff0c;使用mysqldump实现分库分表备份。 1、获取分库备份的库名列表 [rootweb01 scripts]# mysql -uroot -p123456 -e "show databases;" | egrep -v "Database|information_schema|mysql|performance_schema|sys" mysql: [Warning] Using …

二十三种设计模式第十九篇--命令模式

命令模式是一种行为设计模式&#xff0c;它将请求封装成一个独立的对象&#xff0c;从而允许您以参数化的方式将客户端代码与具体实现解耦。在命令模式中&#xff0c;命令对象充当调用者和接收者之间的中介。这使您能够根据需要将请求排队、记录请求日志、撤销操作等。 命令模…

华为数通HCIP-IP组播基础

ospf、isis、BGP--ping通&#xff0c;单播路由--单播路由表&#xff1b; mpls--单播标签互通 点到多点业务流量下发 1、通过广播 一对所有发送&#xff1b; 缺陷&#xff1a;导致流量的有偿性、安全性得不到保障&#xff1b; 2、通过单播 一对一发送&#xff1b; 缺陷&…