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工具栏,选中对应的生命周期,双击执行。

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

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

相关文章

面试官:2PC和3PC有什么区别?

本文内容已收录至我的面试网站&#xff1a;www.javacn.site 在分布式事务中&#xff0c;通常使用两阶段协议或三阶段协议来保障分布式事务的正常运行&#xff0c;它也是 X/Open 公司定义的一套分布式事务标准。 X/Open 公司是由多家国际计算机厂商所组成的联盟组织&#xff0c;…

【前端】-【性能优化常识】

目录 前端性能优化指标首屏速度、白屏时间性能优化收效很大的操作&#xff1a;减少首屏资源体积收效不大或者特殊情况的优化操作 操作速度、渲染速度造成操作卡顿和渲染慢的场景性能优化 数据缓存 补充知识异步加载加载方式一&#xff1a;prefetch加载加载方式二&#xff1a;sc…

小迪安全48WEB 攻防-通用漏洞Py 反序列化链构造自动审计 bandit魔术方法

#知识点&#xff1a; 1、Python-反序列化函数使用 2、Python-反序列化魔术方法 3、Python-反序列化 POP 链构造&#xff08;payload构造&#xff09; 4、Python-自动化审计 bandit 使用 #前置知识&#xff1a; 函数使用&#xff1a; pickle.dump(obj, file) : 将对…

基于SIR模型的疫情发展趋势预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SIR模型的疫情发展趋势预测算法.对病例增长进行SIR模型拟合分析&#xff0c;并采用模型参数拟合结果对疫情防控力度进行比较。整体思路为采用SIR微分方程模型…

免杀对抗-C2远控篇CC++SC转换格式UUID标识MAC物理IPV4地址减少熵值

参考文章&#xff1a; https://github.com/INotGreen/Bypass-AMSI https://mp.weixin.qq.com/s/oJ8eHdX8HGuk6dZv0kmFxg https://kyxiaxiang.github.io/2022/12/14/AMSIandEtw https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell 文章参考&#xff1a; https://www.…

exec族

execl&#xff08;&#xff09;&#xff1b;------------------------------------------ 查看系统命令的路径&#xff1a; 只有错误时返回 -1 执行到execl 时&#xff0c;把execl 里的可执行程序的各个段&#xff08;数据、堆栈...&#xff09;替换掉本程序的a.out 实现镜像&a…

【数据分享】1929-2023年全球站点的逐年平均露点(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全球气象站…

vue3全局引入element-plus使用Message教程

文章目录 安装引入 Element Plus和组件样式示例注意安装与引入&#xff1a;按需引入&#xff1a;API 使用&#xff1a;样式问题&#xff1a;组件上下文&#xff1a;版本兼容性&#xff1a;错误处理&#xff1a; 这是 Element UI 的 Vue 3 版本。ElMessage 是 Element Plus 中的…

四年创作,心路历程

四年创作&#xff0c;心路历程 前言初识收获日常憧憬 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 前言 今天打开csdn&#xff0c;发现官方发送了一条私信,原来我已经在计算机这…

解决华为云服务器宝塔面板无法访问显示“此站点的连接不安全”问题

已经配置好安全组以及初始化宝塔面板&#xff0c;还是无法访问镜像管理页面&#xff0c;提示此站点的连接不安全。 解决方案 将地址https改为http即可进入。 成功登录后&#xff0c;开启面板SSL即可。

LabVIEW智能家居安防系统

LabVIEW智能家居安防系统 随着科技的飞速发展和人们生活水平的不断提升&#xff0c;智能家居系统以其便利性和高效性&#xff0c;逐渐成为现代生活的新趋势。智能家居安防系统作为智能家居系统的重要组成部分&#xff0c;不仅能够提高家庭的安全性&#xff0c;还能为用户提供更…

数学算法(算法竞赛、蓝桥杯)--最大公约数,欧几里得算法

1、B站视频链接&#xff1a;G05 最大公约数 欧几里得算法_哔哩哔哩_bilibili 题目链接&#xff1a;[NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 #include <bits/stdc.h> using namespace std; typedef long long LL; LL x,y,ans;LL gcd(LL a,LL b){return b0?…

【P1328】[NOIP2014 提高组] 生活大爆炸版石头剪刀布

[NOIP2014 提高组] 生活大爆炸版石头剪刀布 题目背景 NOIP2014 提高组 D1T1 题目描述 石头剪刀布是常见的猜拳游戏&#xff1a;石头胜剪刀&#xff0c;剪刀胜布&#xff0c;布胜石头。如果两个人出拳一样&#xff0c;则不分胜负。在《生活大爆炸》第二季第 8 集中出现了一种…

linux用户管理命令2

useradd可以创建用户&#xff0c;其执行具体表现为在home文件夹下创建对应文件 那么有了useradd添加用户&#xff0c;自然有passwd添加用户密码 userdel可以删除用户&#xff0c;其中-r命令删除用户及其文件&#xff0c;-f命令可以强制删除用户&#xff0c;即使用户当前正在登录…

RN封装的底部向上弹出的弹出层组件

组件代码 import React from react; import { View, StyleSheet, Modal, TouchableOpacity, Text, TouchableWithoutFeedback } from react-native;const BottomPopup ({ visible, onClose, children, leftButtonTitle, rightButtonTitle, onLeftButtonPress, onRightButtonP…

Elasticsearch:语义搜索即服务处于卓越搜索的中心

作者&#xff1a;来自 Elastic Sherry Ger, Stephen Brown 对于许多企业来说&#xff0c;搜索卓越中心&#xff08;center of excellence - COE&#xff09;向其用户提供搜索服务&#xff0c;从不同的数据源中整理知识&#xff0c;并将搜索功能集成到其内部和外部应用程序中。…

“数据持久化”和“缓存与数据库不一致”到底有什么区别?

之前&#xff0c;我一直把“数据持久化”和“缓存与数据库不一致问题”给搞混了。我当时复习的时候基本上就没有思考&#xff0c;就是纯背诵&#xff0c;数据持久化是什么&#xff0c;数据持久化有两种方式&#xff0c;这两种方式特点是什么&#xff0c;然后巴拉巴拉一堆。缓存…

「09」媒体源:播放本地或在线的音视频GIF文件

「09」媒体源播放本地或在线的音视频GIF文件 通过媒体源功能&#xff0c;您可以添加自己想要展示的各种视频内容&#xff0c;例如自己的视频课程、电影或客户见证视频、以及GIF动画等。 &#xff08;图层叠加效果&#xff09; &#xff08;绿幕抠像叠加效果&#xff09; 缺点…

[Android]创建Google Play内购aab白包

开发时需要调试Google内购&#xff0c;需要先往Google商店传一个白包上去。确定包名&#xff0c;然后进行内购产品创建。 1.创建一个空项目&#xff0c;填写正式名称和正式包名。 如果你只是为一个测试开发账号打白包&#xff0c;然后进行内购测试&#xff0c;这时包名随便写…

【idea快捷键】idea开发java过程中常用的快捷键

含义win快捷键mac快捷键复制当前行或选定的代码块Ctrl DCommand D通过类名快速查找类Ctrl NCommand N通过文件名快速查找文件Ctrl Shift NCommand Shift N通过符号名称快速查找符号&#xff08;类、方法等&#xff09;Ctrl Alt Shift NCommand Shift O跳转到声明C…