【Java】maven是什么?

先看一下基本概念:

①Maven

翻译为"专家","内行"是跨平台的项目管理工具。

主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。

②项目构建

项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。

理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用maven就可以帮我们完成上述所说的项目构建过程。

③依赖管理

依赖指的是jar包之间的相互依赖,比如我们讲文件上传组件commons-fileupload-1.2.1.jar,不是自拷贝这个一个jar包,而我们说它还依赖commons-io-2.0.jar这个jar包,我们使用fileupload组件的时候,就必须同时复制这个两个jar到lib目录下。依赖管理指的就是使用Maven来管理项目中使用到的jar包,Maven管理的方式就是“自动下载项目所需要的jar包,统一管理jar包之间的依赖关系”。

使用Maven的好处:

(1)平时我们开发项目时,一般都是一个项目就是一个工程。我们划分模块时,都是使用package来进行划分。但是,当项目很大时,有很多子模块时,即使是package来进行划分,也是让人眼花缭乱。

优点一:项目非常大时,可借助Maven将一个项目拆分成多个工程,最好是一个模块对应一个工程,利于分工协作。而且模块之间还是可以发送消息的。

(2)同一项目的jar包 复制 和 粘贴到WEB-INF/lib下

问题:同样的jar包重复出现在不同的工程中,一方面浪费空间,同时也让工程臃肿

优点二:借助Maven,可将jar包仅仅保存在“仓库”中,有需要该文件时,就引用该文件接口,不需要复制文件过来占用空间。

(3)如果jar包都到各个官网网站下载,会浪费很多时间,而且可能不全。

优点三:借助Maven可以以规范的方式下载jar包,因为所有的知名框架或第三方工具的jar包已经按照统一的规范存放到了Maven的中央仓库中。

( 4)一个jar包依赖的其他jar包可能没导入到项目而导致项目跑不起来。

优点四:Maven会自动将你要加入到项目中的jar包导入,不仅导入,而且还会将该jar包所依赖的jar包都自动导入进来。

Maven要实现这些好处,它具体是怎么做的呢?

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

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

相关文章

Matlab 修改图例顺序

对于使用 .m 文件绘制的图片,可以修改程序中图例的顺序来改变图片的图例。如果图片所对应的 .fig 文件已经存在,而且不便修改源程序,则可以通过如下方式来修改图例: step 1: 打开fig文件,然后点击绘图浏览器 step 2&…

PHP超级外链分发源码

源码简介 超级外链工具,是一款在线全自动化发外链的推广工具。使用本工具可免费为网站在线批量增加外链,大大提高外链发布工作效率,是广大草根站长们必备的站长工具。 搭建环境 PHP 5.6 安装教程 上传源码压缩包到网站目录并解压即可 首…

kali 渗透工具 - mestaploit

永恒之蓝漏洞的小知识: 黑客通过改造 永恒之蓝 制作 wannacry 制作病毒入侵高校内网。 mestaploit 攻击永恒之蓝流程: 使用模块 msfconsole配置required 模块参数运行,开始监听主机 msfconsole 主要模块 - 选择使用模块 search ms17_01…

大语言模型RAG vs. 长文本

在学习完大语言模型中最热门的两个概念大语言模型落地的关键技术:RAG和大语言模型上下文窗口初探后,关于RAG和长文本(long-context)的优劣比较引起了广泛的讨论,本文整理了大语言模型RAG vs. 长文本争论的5种类观点。 …

百度富文本编辑器配置(vue3)

今天分享一下我做的项目里面的一个百度富文本的配置问题,安装配置流程以及如何解决的 1.首先是安装组件 # vue-ueditor-wrap v3 仅支持 Vue 3 npm i vue-ueditor-wrap3.x -S # or yarn add vue-ueditor-wrap3.x 2. 下载 UEditor UEditor 并不支持通过 npm 的方式…

爬虫入狱笔记——xx政府网站公开政策数据

最近在学习爬虫,做个笔记吧 今天爬xx政府网站-政策法规栏目的数据 咱们首先需要找到数据从哪里来,鼠标右键->检查(或者快捷键一般为F12)检查元素,搜索关键词 eg.【违法案例】 回车, 如果没有的话&am…

模数转换器 SIG5533A 国产平替 CS5533AS,替代 CS5533AS

信格勒微电子的芯片产品已通过行业头部大厂导入验证,深受百万终端客户好评。 而且因为 fully compatible. 板子拿来,换个芯片, 性能更好 。MCU 不用改 c code。 SIG5531A/SIG5532A/SIG5533A/SIG5534A 1.6SPS to 3840SPS 16-bit/24-bit AD…

Java8关于Function接口

Java学习-Function接口 1 函数式接口简介和学习地址2 两种常见的函数式接口2.1 Runnable:执行接口,不接收参数,也无返回结果。2.2 Consumer:作为消费接口,接收一个参数,无返回结果。 3 初识3.1 定义Functio…

数据结构初阶:栈和队列

栈 栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。 栈中的数据元素遵守后进先出 LIFO ( Last In First Out )的原则。…

报错:Directory“c:/Gowin/20240325 USB_3/impl/pnr”has null character.

问题说明 将工程从一个电脑拷贝到另外一个电脑,然后工程综合没有问题,布局布线时没有ERROR报出,但是就是不能进行布局布线,如下图: 解决方法: 将拷贝工程文件夹名字中的空格删除,然后重新布局…

构成CNN主要组件思想---BP

方式1:手推写神经元节点的前向、后向计算(参数更新) import numpy as np_w [0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65] _b [0.35, 0.65] _x [5, 10] _y [0.01, 0.09] lr 0.5def w(index):return _w[index - 1…

昇腾Ascend之npu-smi工具的简单使用

一、参考资料 npu-smi工具 二、npu-smi工具的常用操作 信息查询(info) npu-smi info -t <type> -i <npu_id>查询所有芯片的AI CPU、control CPU和data CPU数量 参数描述-ttype: board, flash, memory, usages, sensors, temp, power, volt, common, health, p…

4/7 QT_day1

#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {//窗口设置this->setWindowTitle("小黑子(little black son)");this->setWindowIcon(QIcon("D:\\qq文件\\Pitrue\\pictrue\\black.jpg"));this-&g…

HiSilicon352 android9.0 系统显示方向旋转与截屏问题分析

一&#xff0c;系统显示方向 1. 概述 Android的旋转显示&#xff0c;主要运用于广告机。Android的旋转&#xff0c;包括图形UI的旋转、鼠标和遥控器的旋转及媒体旋转。 下图为竖屏UI的绘制坐标系和显示坐标系。 2. 功能说明 方案依据Android原生的旋转原理设计&#xff0c…

MySQL的sql_mode模式简介

前言 今天同事使用数据库时报错,排查问题时发现配置文件里的sql_mode配置被人注释了,所以通过查询资料对这个配置进行了下了解。 介绍 mysql为了支持在不同的环境下运行&#xff0c;允许我们给它设置不同的运行模式&#xff08;sql_mode&#xff09;。 不同的运行模式&#…

跨域问题及解决方案

跨域是指当一个Web页面的脚本&#xff08;如JavaScript&#xff09;试图请求另一个与自身不同源的Web页面资源时&#xff0c;由于浏览器的同源策略限制&#xff0c;导致请求被阻的现象。 同源策略是浏览器为了安全而设置的一种策略&#xff0c;它要求Web页面只能访问与其自身的…

使用tomcat里的API - servlet

一、创建一个新的Maven空项目 首次创建maven项目的时候&#xff0c;会自动从maven网站上下载一些依赖组件&#xff08;这个过程需要保证网络稳定&#xff0c;否则后续打包一些操作会出现一些问题&#xff09; ps:校园网可能会屏蔽一些网站&#xff0c;可能会导致maven的依赖…

Chat2DB

序言 日常开发中&#xff0c;我们可能会用到MyBatis Generator自动生成Entity实体类、DAO接口以及对应的Mapper文件可以减少一部分的冗余代码开发量&#xff0c;随着AI的发展&#xff0c;可以将自然语言转换为SQL语句&#xff0c;例如ChatSQL、阿里的Chat2DB等。 Chat2DB简介…

Stable Diffusion模型基于 TensorFlow 或 PyTorch 训练

安装必要的软件和库&#xff1a; 安装 Python&#xff08;建议使用 Python 3.x 版本&#xff09;。安装 TensorFlow 或 PyTorch&#xff0c;具体版本取决于你的模型是基于哪个框架训练的。安装其他可能需要的依赖&#xff0c;如 NumPy、Matplotlib 等。 获取模型代码和权重&…

git Failed to connect to 你的网址 port 8282: Timed out

git Failed to connect to 你的网址 port 8282: Timed out 出现这个问题的原因是&#xff1a;原来的仓库换了网址&#xff0c;原版网址不可用了。 解决方法如下&#xff1a; 方法一&#xff1a;查看git用户配置是否有如下配置 http.proxyhttp://xxx https.proxyhttp://xxx如果…