当前位置: 首页 > news >正文

Java Web-Maven

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

Maven的作用

1.依赖管理:方便快捷的管理项目依赖资源(jar包),避免版本冲突问题

我们有的项目需要大量的jar包,采用手动导包的方式非常繁琐,并且版本升级也不方便。当我们使用maven,只要创建maven工程,只需要在pom.xml配置文件中配置即可。

2.统一项目结构:提供标准,统一的项目结构

我们程序员使用的开发工具很多,但构建出来的项目目录结构有差异,使用Maven提供了标准的项目结构,这样不同开发工具开发的项目之间可以相互导入

pom.xml是maven的核心依赖,当前项目要导入的核心依赖都在里面

3.项目构建:提供便准跨平台的自动化项目构建方式

我们可以通过里面的指令快速完成清理,编译,测试打包等工作

Maven模型

各个插件就可以完成各种功能例如编译插件进行编译,打包阶段进行打包,而每部操作都会产生对应的文件,放在target目录下

项目对象模型是指在pom.xml文件中通过一小段配置信息来 描述这个工程,如下图标明了项目的组织,模块名称,版本。他们称为工程的坐标

当我们要关联jar包,就可以在xml文件当中添加依赖管理模型。在xml文件中用标签添加依赖

 

添加依赖之后,maven会自动到仓库查找依赖。首先到本地仓库查找,如果本地仓库没有,会连接中央仓库的jar包,下载到本地仓库。为了提高加载速度,还会引用公司自己搭建的仓库(私服),只要公司中有一个人用到了依赖,就会把依赖下载到私服中

仓库:是用于存储资源,管理各种jar包的

Maven安装

1.下载地址:Maven – Download Apache Maven

bin目录存放的是可执行文件,conf目录存放的是配置文件,lib里是存放的jar包资源

2.配置本地仓库:配置一个地址作为本地仓库用来存储下载的jar包资源

方法:修改conf/setting.xml中的<localRepsitory>为一个指定目录

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

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

IDEA集成maven

配置maven环境
  • 配置当前工程的maven环境

配置安装路径,xml文件和本地仓库

关联的jre是否是对应的版本

和配置java语言的字节码版本

  • 配置全局maven环境工程

在主界面配置即可

IDEA创建maven项目

 1.创建项目,选择maven Archetype,并修改 Archetype的值

2.填写坐标信息

坐标是资源的唯一标识,通过坐标可以定义资源的唯一位置

使用坐标来定义项目或引入项目中需要的依赖

导入maven项目

方式一:打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击即可。

 

如果点没有弹出对话框,点击Apperance勾选进行调出

方式二:模块中导入pom文件

依赖管理

依赖配置

依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖。
配置:
1. 在pom.xml中编写<dependencies>标签

2. 在<dependencies>标签中 使用<dependency>引入坐标

3. 定义坐标的 groupld, artifactid, version

4. 点击刷新按钮,引入最新加入的坐标

第一次使用依赖可能未下载,需要点击刷新按钮刷新联网下载依赖

如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索。

依赖传递

依赖具有传递性,被依赖的资源如果依赖了其他资源,那么依赖的依赖也会导入 

排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本。

依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope> ...< / scope>设置其作用范围

作用范围:

主程序范围有效。(main文件夹范围内)
测试程序范围有效。(test文件夹范围内)
是否参与打包运行。(package指令范围内)

生命周期

Maven中有3套相互独立的生命周期:

 clean: 清理工作。

 default:核心工作,如:编译、测试、打包、安装、部署等。

 site:生成报告、发布站点等。

每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段。

lifecycle就是生命阶段。

我们来讲几个重要的生命阶段:

clean:移除上一次构建生成的文件

 compile:编译项目源代码

 test:使用合适的单元测试框架运行测试(junit)

 package:将编译后的文件打包,如:jar、war等

 install:安装项目到本地仓库

执行指定生命周期的方式:

在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。

相关文章:

Java Web-Maven

Maven是apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具 Maven的作用 1.依赖管理:方便快捷的管理项目依赖资源(jar包)&#xff0c;避免版本冲突问题 我们有的项目需要大量的jar包&#xff0c;采用手动导包的方式非常繁琐&#xff0c;并且版本升级也…...

.Net 异步委托

委托的 BeginInvoke 方法和 EndInvoke 方法可以实现异步执行委托方法。这允许委托的方法在后台线程中执行&#xff0c;而不会阻塞当前线程。小编在之前的webform开发中遇到下载进度条卡死的问题就是用它解决的。 案例&#xff1a; namespace ConsoleApplication1 {class Progr…...

web前端面试题---->HTML、CSS

一.居中方法 block元素如何居中 margin&#xff1a;0 auto&#xff1b;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);flex布局&#xff1a; 对父元素操作 &#xff1a; justify-content:center; al…...

移动端Web笔记day03

移动 Web 第三题 01-移动 Web 基础 谷歌模拟器 模拟移动设备&#xff0c;方便查看页面效果&#xff0c;移动端的效果是当手机屏幕发生了变化&#xff0c;页面和页面中的元素也要跟着等比例变化。 屏幕分辨率 分类&#xff1a; 硬件分辨路 -> 物理分辨率&#xff1a;硬件…...

c++的学习之路:3、入门(2)

一、引用 1、引用的概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量共用同一块内存空间。 怎么说呢&#xff0c;简单点理解就是你的小名&#xff0c;家里人叫你小名&#…...

面试经典150题【91-100】

文章目录 面试经典150题【91-100】70.爬楼梯198.打家劫舍139.单词拆分322.零钱兑换300.递增最长子序列77.组合46.全排列39.组合总和&#xff08;※&#xff09;22.括号生成79.单词搜索 面试经典150题【91-100】 五道一维dp题五道回溯题。 70.爬楼梯 从递归到动态规划 public …...

在 nginx 中使用 JavaScript

前些日子尝试了在 nginx 中写 JavaScript 的效果。考虑到 JavaScript 作为编程语言不是强需求&#xff0c;在nginx生态上还是 lua 独大&#xff0c;并且还有 openresty 这样一直强力输血&#xff0c;大部分应用场景都能找到参考的解决方案。 插件生态来说&#xff0c;github 上…...

【pytorch】安装合集

使用conda或者pip安装的指令 https://pytorch.org/get-started/previous-versions/ 测试pytorch_gpu是否可用的代码 # 测试pytorch是否安装成功 import torch print(torch.__version__) print(torch.cuda.is_available())...

【教程】PLSQL查看表属性乱码解决方法

一、前言 PL/SQL是Oracle数据库的编程语言&#xff0c;用于编写存储过程、触发器、函数等。 今天用plsql想查看表的属性&#xff0c;看看各个字段的注释&#xff0c;可是打开一看&#xff0c;居然是乱码的&#xff0c;如下面这样 如果在使用PL/SQL查看表属性时出现乱码&…...

新书速览|Django 5企业级Web应用开发实战:视频教学版

掌握Django框架开发技能&#xff0c;实战投票应用系统和内容管理系统 本书内容 《Django 5企业级Web应用开发实战&#xff1a;视频教学版》精选当前简单、实用和流行的Django实例代码&#xff0c;帮助读者学习和掌握Django 5框架及其相关技术栈的开发知识。本书系统全面、内容…...

excel创建和部分使用

一.excel导出是在开发中经常操作的内容,对于excel的导出也是有各种成熟的api组件 这里是最近的项目有通过ts处理,这里的内容通过ts ①引入const XlsxPopulate require("xlsx-populate"); const XLSXChart require("xlsx-chart"); 通过命令行操作, pnp…...

pycharm使用远程服务器的jupyter环境

1、确保服务器上安装了jupyter,如果没有&#xff0c;执行下面命令安装 pip install jupyter2、启动jupyter notebook服务 jupyter notebook --no-browser --port8888 --ip0.0.0.0 --allow-root表明在服务器的8888 端口上启动 Jupyter Notebook&#xff0c;并允许从任何 IP 地…...

ES6 基础

文章目录 1. 初识 ES62. let 声明变量3. const 声明常量4. 解构赋值 1. 初识 ES6 ECMAScript6.0(以下简称ES6)是JavaScript语言的下一代标准&#xff0c;已经在2015年6月正式发布了。它的目标&#xff0c;是使得」JavaScript语言可以用来编写复杂的大型应用程序&#xff0c;成为…...

【双指针】Leetcode 有效三角形的个数

题目解析 611. 有效三角形的个数 算法讲解 回顾知识&#xff1a;任意两数之和大于第三数就可以构成三角形 算法 1&#xff1a;暴力枚举 int triangleNumber(vector<int>& nums) {// 1. 排序sort(nums.begin(), nums.end());int n nums.size(), ret 0;// 2. 从…...

python项目练习——4.手写数字识别

使用Python和Scikit-learn库进行机器学习模型训练的项目——手写数字识别。 项目分析&#xff1a; 数据准备&#xff1a;使用公开数据集&#xff08;如MNIST&#xff09;作为训练和测试数据。数据预处理&#xff1a;对图像数据进行归一化、展平等操作&#xff0c;以便输入到机…...

【目标检测】NMS算法的理论讲解

将NMS就必须先讲IOU&#xff0c; IOU就是交并比&#xff0c;两个检测框的交集除以两个检测框的并集就是IOU 为什么要做NMS操作&#xff0c;因为要去除同一个物体的多的冗余检测框 那么NMS算法是如何做的呢&#xff1f; 以上是算法的流程图 下面讲解算法的流程 首先输入是预…...

3-iperf3 使用什么工具可以检测网络带宽、延迟和数据包丢失率等网络性能参数呢?

(1)iperf3简介 1.iperf3简介 2.用途&#xff08;特点&#xff09; 3.下载iperf3地址 &#xff08;2&#xff09;实战 1.iperf3参数 &#xff08;1&#xff09;通用参数&#xff08;客户端和服务器端都是适用的&#xff09; &#xff08;2&#xff09;客户端参数 实验1&…...

阳光倒灌高准直汽车抬头显示器HUD太阳光模拟器

阳光倒灌高准直汽车抬头显示器HUD太阳光模拟器是一种高级别的模拟设备&#xff0c;用于模拟太阳光的光谱、强度及照射角度&#xff0c;应用于太阳能电池板、光伏系统等领域的研究和测试。其参数包括光谱范围、光强度、光源、照射角度、均匀性和稳定性&#xff0c;可根据需求调整…...

jdk11中自定义java类在jvm是如何被查找、加载

yym带你了解jvm源码&#xff0c;openjdk11源码&#xff0c;java类jvm加载原理 jdk11中java类在jvm是如何被1查找、2加载 以下说明的是MiDept类是如何被java classloader 和 jvm加载步骤 上源代码 public static void main(String[] args) {Thread.currentThread().setName…...

单片机---独立按键

[3-1] 独立按键控制LED亮灭_哔哩哔哩_bilibili 按下的时候连接&#xff0c;松开的时候断开。 一头接GND&#xff08;电源负极&#xff09;&#xff0c;另一头接I/O口。 单片机上电时&#xff0c;所有I/O口为高电平。 按键没有按下&#xff0c;I/O口为高电平。 按键按下&…...

整理‌ 主流国产AI龙虾的核心能力对比表(支持平台/部署方式/适用场景)腾讯WorkBuddy‌ ‌阿里JVS Claw 百度DuMate

根据当前的资料&#xff0c;腾讯WorkBuddy和百度的DuMate当前有一定一定量的免费额度&#xff0c;大家可以用起来&#xff01; 主流国产AI龙虾的核心能力对比表 五款主流国产AI龙虾的核心能力对比表已整理完成&#xff0c;涵盖支持平台、部署方式与适用场景三大维度&#xff…...

3步实现BERT模型轻量化部署与性能优化:基于Torch-Pruning的结构化剪枝指南

3步实现BERT模型轻量化部署与性能优化&#xff1a;基于Torch-Pruning的结构化剪枝指南 【免费下载链接】Torch-Pruning [CVPR 2023] Towards Any Structural Pruning; LLMs / Diffusion / Transformers / YOLOv8 / CNNs 项目地址: https://gitcode.com/gh_mirrors/to/Torch-P…...

智能影像雅鉴系统:丹青识画在美术馆导览中的落地实操

智能影像雅鉴系统&#xff1a;丹青识画在美术馆导览中的落地实操 1. 艺术与科技的完美融合 1.1 传统导览的痛点与革新 在美术馆参观时&#xff0c;我们常常面临这样的困境&#xff1a;站在一幅名画前&#xff0c;却无法真正理解其深层意境&#xff1b;面对珍贵文物&#xff…...

Elsevier Tracker:告别投稿焦虑,3分钟实现学术稿件智能追踪

Elsevier Tracker&#xff1a;告别投稿焦虑&#xff0c;3分钟实现学术稿件智能追踪 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 还在为Elsevier投稿后的漫长等待而焦虑吗&#xff1f;每天反复登录系统查看审稿状…...

中山专用展示柜灯具,打造完美商品展示效果

在灯具销售领域&#xff0c;商品展示效果的好坏直接影响着销售业绩。一个好的展示柜不仅能保护灯具&#xff0c;更能通过巧妙的设计和布局&#xff0c;将灯具的优点充分展现出来&#xff0c;吸引顾客的目光。而中山作为中国著名的灯饰之都&#xff0c;其专用展示柜灯具更是有着…...

QT6.5串口编程第一步:用CMakeLists.txt引入SerialPort模块的避坑指南

QT6.5串口编程避坑指南&#xff1a;CMakeLists.txt配置全解析 当你满怀期待地在QT6.5项目中引入串口通信功能&#xff0c;却在编译时遭遇"找不到QtSerialPort"的红色错误提示&#xff0c;这种挫败感我深有体会。作为一位经历过无数次类似"战斗"的开发者&am…...

忍者像素绘卷GPU算力适配:A10/A100/V100多卡推理吞吐量对比

忍者像素绘卷GPU算力适配&#xff1a;A10/A100/V100多卡推理吞吐量对比 1. 技术背景与测试目标 忍者像素绘卷作为一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;其核心价值在于将传统漫画创作与16-Bit复古游戏美学相结合。在实际应用中&#xff0c;GPU算力直接决…...

Qwen3-14B镜像轻量化设计:50GB系统盘+40GB数据盘高效空间管理

Qwen3-14B镜像轻量化设计&#xff1a;50GB系统盘40GB数据盘高效空间管理 1. 镜像概述与核心优势 Qwen3-14B私有部署镜像是一款专为RTX 4090D 24GB显存显卡优化的轻量化解决方案。通过精心设计的50GB系统盘40GB数据盘架构&#xff0c;实现了大模型部署的空间效率最大化。这个镜…...

Hi3559平台ISP调试实战:从参数配置到画质优化

1. Hi3559平台ISP基础概念与工作原理 第一次接触Hi3559平台的ISP模块时&#xff0c;我完全被各种专业术语搞晕了。后来在调试车载摄像头项目时才发现&#xff0c;理解ISP的工作原理对画质优化有多重要。简单来说&#xff0c;ISP就像是我们手机里的美颜功能&#xff0c;只不过它…...

Yi-Coder-1.5B代码生成实战:快速搭建本地AI编程助手

Yi-Coder-1.5B代码生成实战&#xff1a;快速搭建本地AI编程助手 1. 引言&#xff1a;你的私人编程助手&#xff0c;本地就能跑 还在为写重复的样板代码而烦恼吗&#xff1f;或者面对一个新框架的API文档&#xff0c;不知道从何下手&#xff1f;如果你是一名开发者&#xff0c…...