Maven基础之仓库、命令、插件机制

文章目录
- Maven 仓库
- 中央仓库和本地仓库
- 中央仓库
- 本地仓库
- Maven 命令
- generate 命令
- compile 命令
- clean 命令
- test 命令
- package 命令
- install 命令
- Maven 插件机制
- 官方插件:Compile 插件
- Tomcat 7 插件
Maven 仓库
中央仓库和本地仓库
[✎] 简单一点说
中央仓库是一个网址;本地仓库是一个本地的文件夹。
在使用 maven 过程中,maven 会去网络上的『中央仓库』下载你所需要的 java 库到你本地的某个文件夹下,这个存储 maven 下载下来的 jar 包的文件夹就是你的『本地仓库』。
[✔] 补充
本质上,其实是 maven 要求你的"本地仓库"中必须要有你所要用到的包,而因为你本地仓库中没有,所以,maven 会去网络上的"中央仓库"下载。一旦在第一次下载过后,由于你的本地仓库中存在了这个 jar 包,那么后续,maven 就不再重复下载它了。
中央仓库
如果不指定的话,maven 默认是从 https://repo1.maven.org/maven2 下载(网速感人且不稳定)。
在 maven 的全局配置文件 %homepath%/.m2/settings.xml 中,我们可以重新指定中央仓库的网址。
我们在Maven 基础之简介,基础配置中做的配置工作就是改动这个。
本地仓库
本地仓库指的是 “%homepath%/.m2/repository” 文件夹。
maven 从中央仓库(上面所配置的那个网址)中下载下来的 java 库的 jar 包,都会放在这里。
本地仓库的查找顺序:
- USER_HOME/.m2/settings.xml 中所配置的目录
- M2_HOME/conf/settings.xml 中所配置的目录
- USER_HOME/.m2/repository 目录
Maven 命令
语法:
mvn <指令>
generate 命令
generate 命令用于创建项目。在你所期望建立项目的文件路径下,执行如下命令
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这条命令会在当前目录下,新建一个名字与 artifactId 值相同的 Maven 项目。
compile 命令
执行 mvn compile 命令,完成编译操作
执行完毕后,会生成 target 目录,该目录中存放了编译后的字节码文件(.class 文件)。
clean 命令
执行 mvn clean 命令,完成清理操作。
执行完毕后,会将 target 目录删除。
test 命令
执行 mvn test 命令,完成单元测试操作。
执行完毕后,会在 target 目录中生成三个文件夹:surefire 、surefire-reports(测试报告)、test-classes(测试的字节码文件) 。
package 命令
执行 mvn package 命令,完成打包操作。
package 命令会涵盖 compile 命令和 test 命令,即,执行 package 命令会触发 compile 命令和 test 命令的执行。
执行完毕后,会在 target 目录中生成一个文件,该文件可能是 jar 、war ,这取决于 pom.xml 配置文件中的 <packaging> 。
install 命令
将包安装至本地仓库,以便让其它项目依赖。
install 命令会涵盖 package 命令,即,执行 install 命令会触发 package 命令的执行。
Maven 插件机制
Maven 本质上是一个插件的框架、平台。任何一个 Maven 动作(即,命令)都是由具体的插件去完成的。
例如:
-
mvn compile这个命令,就是由maven-compiler-plugin插件提供的。 -
mvn test这个命令,就是由maven-surefire-plugin插件提供的。 -
mvn package这个命令,就是由maven-jar-plugin/maven-war-plugin插件提供的。
Maven 除了提供了大量的官方插件外,还可以「安装」第三方插件。
插件配置的依赖声明整体结构(其它无关元素略。另外,build 习惯性在 dependencies 的后面):
project
├── dependencies
└── build└── plugins├── plugin├── plugin├── ...└── plugin
官方插件:Compile 插件
通常,官方插件都是默认激活使用的。一般,我们不会通过自定义的配置去覆盖默认配置。
主要包含如下元素:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin>...</plugin><plugin>...</plugin><plugin>...</plugin><plugins>
</build>
Tomcat 7 插件
tomcat 7 插件是一个 tomcat 7 容器的裁剪、精简版,并且它还提供了一个 tomcat7:run 命令来用这个裁剪版的运行当前项目。
我们在开发过程中 tomcat7-maven-plugin 就能运行当前项目,查看运行结果。
详情
<build><plugins><plugin><!-- 配置插件 --><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><path>/demo</path><port>8080</port><uriEncoding>UTF-8</uriEncoding></configuration></plugin><plugin>...</plugin><plugin>...</plugin><plugin>...</plugin></plugins>
</build>
[⚠] 警告
有 tomcat 8 版本的 maven 插件(即,一个 tomcat 8 容器的裁剪、精简版),但是中央仓库中并没有。
相关文章:
Maven基础之仓库、命令、插件机制
文章目录 Maven 仓库中央仓库和本地仓库中央仓库本地仓库 Maven 命令generate 命令compile 命令clean 命令test 命令package 命令install 命令 Maven 插件机制官方插件:Compile 插件Tomcat 7 插件 Maven 仓库 中央仓库和本地仓库 [✎] 简单一点说 中央仓库是一个网…...
【ArcGIS】经纬度数据转化成平面坐标数据
将点位置导入Gis中,如下(经纬度表征位置): 如何利用Gis将其转化为平面坐标呢? Step1 坐标变换 坐标变换,打开ArcToolbox,找到“数据管理工具”->“投影和变换”->“要素”->“投影”…...
使用自己的数据利用pytorch搭建全连接神经网络进行回归预测
使用自己的数据利用pytorch搭建全连接神经网络进行回归预测 1、导入库2、数据准备3、数据拆分4、数据标准化5、数据转换6、模型搭建7、模型训练8、模型预测9、完整代码 1、导入库 引入必要的库,包括PyTorch、Pandas等。 import numpy as np import pandas as pd f…...
103.216.154.X服务器出现漏洞了有什么办法?
服务器出现漏洞是一种严重的安全风险,需要及时采取措施来应对。以下是一些常见的应对措施: 及时更新补丁:确保服务器上的操作系统、应用程序和软件都是最新版本,并及时应用相关的安全补丁,以修复已知的漏洞。 强化访问…...
数据结构:堆的实现(C实现)
个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》 文章目录 一、堆二、实现思路1. 结构的定义2. 堆的构建 (HeapInit)3. 堆的销毁 (HeapDestroy)4. 堆的插入 (HeapPush)5. 堆的删除 (HeapPop)6. 取堆顶的数据 (HeapTop)7. 堆的数据个数 (HeapSize…...
数据分析两件套ClickHouse+Metabase(一)
ClickHouse篇 安装ClickHouse ClickHouse有中文文档, 安装简单 -> 文档 官方提供了四种包的安装方式, deb/rpm/tgz/docker, 自行选择适合自己操作系统的安装方式 这里我们选deb的方式, 其他方式看文档 sudo apt-get install -y apt-transport-https ca-certificates dirm…...
urllib爬虫模块
urllib爬取数据 import urllib.request as request# 定义url url "https://www.baidu.com" #模拟浏览器发起请求获取响应对象 response request.urlopen(url)""" read方法返回的是字节形式的二进制数据 二进制--》字符串 解码 decode( 编码的格式…...
TCP消息传输可靠性保证
TCP链接与断开 -- 三次握手&四次挥手 三次握手 TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一…...
Visual Studio 与QT ui文件
对.ui文件鼠标右键,然后单击 Open with…在弹出的窗口中,选中左侧的 Qt Designer,然后单击右侧的 Add 按钮,随后会弹出一个窗口,在 Program: 输入框中输入 Qt Designer 的路径,最后单击 OK找到 Qt Designer…...
竞赛项目 深度学习验证码识别 - 机器视觉 python opencv
文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…...
ORA-00845: MEMORY_TARGET not supported on this system
处理故障时,发现startup实例失败,报错ORA-00845: MEMORY_TARGET not supported on this system SYSorcl1> startup; ORA-00845: MEMORY_TARGET not supported on this system 查看alert日志,报错如下 Starting ORACLE instance (normal…...
wps设置一键标题字体和大小
参考 wps设置一键标题字体和大小:https://www.kafan.cn/A/7v5le1op3g.html 统一一键设置...
TIA博途WINCC_如何在IO域中保证输入数值只能为正数?
TIA博途WINCC_如何在IO域中保证输入数值只能为正数? 在某些情况下,输入的数值受到限制,本例就以输入的数值必须为正整数为例进行说明。 如下图所示,在PLC的全局DB块中添加一个测试变量,数据类型为Int(该数据类型的范围为-32768~+32767), 如下图所示,将该测试变量拖拽到…...
《Linux从练气到飞升》No.13 Linux进程状态
🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的…...
安卓快速开发
1.环境搭建 Android Studio下载网页:https://developer.android.google.cn/studio/index.html 第一次新建工程需要等待很长时间,新建一个Empty Views Activity 项目,右上角选择要运行的机器,运行就安装上去了(打开USB调试)。 2…...
SpringCloud微服务之间如何进行用户信息传递(涉及:Gateway、OpenFeign组件)
目录 1、想达到的效果2、用户信息在微服务之间传递的两种途径3、用RuoYi-Cloud为例进行演示说明(1)网关将用户信息写在请求头中(2)业务微服务之间通过OpenFeign进行调用,并且将用户信息写在OpenFeign准备的请求头中&am…...
RabbitMQ之TTL+死信队列实现延迟队列
RabbitMQ是一个流行的消息队列系统,它提供了许多有用的功能,其中之一是TTL(Time To Live)和死信队列。这些功能可以用来实现延迟队列,让我们来看看如何使用它们。 首先,什么是TTL?TTL是消息的存…...
GrapeCity Documents for PDF (GcPdf) 6.2 Crack
GrapeCity PDF 文档 (GcPdf) 改进了对由 GcPdf 以外的软件生成的现有 PDF 文档的处理 在新的 v6.2 版本中,GcPdf 增强了 PDF 文档的加载和保存,并提供以下优势: GcPdf 现在可以加载和保存可能不严格符合 PDF 规范的 PDF 文档。GcPdf 现在将…...
【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据)
【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据) 1.模型原理1.1 模型原理1.2 数学模型2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果1.模型原理 随机森林(Random Forest)是一种集成学习方法,通过组合多个决策树来构建强大的分类或回归…...
问AI一个严肃的问题
chatgpt的问世再一次掀起了AI的浪潮,其实我一直在想,AI和人类的关系未来会怎样发展,我们未来会怎样和AI相处,AI真的会完全取代人类吗,带着这个问题,我问了下chatgpt,看一看它是怎么看待这个问题…...
石大胜华冲刺港股:年营收68亿 亏588万 郭天明控制22%股权
雷递网 雷建平 4月5日石大胜华新材料集团股份有限公司(简称:“石大胜华”)日前递交招股书,准备在港交所上市。石大胜华已在A股上市,截至周五收盘,石大胜华股价为80.75元,市值为188亿元。一旦在港…...
别再只会用na.omit删数据了!R语言缺失值处理保姆级教程:从均值填补到随机森林实战
R语言缺失值处理实战:从基础填补到随机森林的完整指南 第一次拿到带有缺失值的数据集时,大多数人的本能反应是直接删除那些不完整的记录。这种简单粗暴的做法看似省事,却可能让你的分析结果偏离真实情况。想象一下,你正在分析一组…...
电力电子新手必看:SPWM单极性倍频调制在Simulink中的实现与优化
电力电子新手必看:SPWM单极性倍频调制在Simulink中的实现与优化 在电力电子领域,正弦脉宽调制(SPWM)技术因其简单高效而广受欢迎。对于初学者而言,单极性倍频调制作为SPWM的一种进阶实现方式,能够显著提升输…...
[具身智能-229]:OpenCV 的 DNN (Deep Neural Networks) 模块,可以直接加载和运行,通过PyTorch AI框架训练好的模型,而不需要安装PyTorch AI框架
OpenCV 的 DNN (Deep Neural Networks) 模块确实是工业界和边缘计算领域非常推崇的推理引擎。它的核心定位不是“训练模型”,而是“让训练好的模型跑得更快、更轻、更通用”。它允许开发者在不依赖庞大的 TensorFlow 或 PyTorch 库的情况下,直接在生产环…...
智能应急灯V16:多场景照明解决方案
目录 一、方案概述 二、硬件方案设计 2.1 硬件整体架构 2.2 核心模块选型与设计 2.2.1 主控模块(核心单元) 2.2.2 电源管理模块(供电核心) 2.2.3 照明驱动模块 2.2.4 状态监测模块 2.2.5 通信模块(可选&#…...
PrimeTime实战指南:从基础STA流程到精准时序报告解析
1. PrimeTime与静态时序分析基础 刚接触PrimeTime时,我和大多数工程师一样被满屏的时序报告搞得头晕眼花。直到把整个设计流程跑通三遍后,才真正理解这个工具的价值。PrimeTime(简称PT)是Synopsys推出的静态时序分析黄金工具&…...
SECS协议实战:从报警触发到Trace数据采集的完整指南
1. SECS协议基础与报警管理实战 半导体设备通信领域有个"隐形语言"叫SECS/GEM协议,它就像设备间的摩斯密码。今天咱们重点聊聊其中两个高频功能:报警管理(S5F1)和Trace数据采集(S2F23/S6F1)。先看…...
5分钟免费指南:如何将旧手机变成Linux高清摄像头
5分钟免费指南:如何将旧手机变成Linux高清摄像头 【免费下载链接】droidcam GNU/Linux/nix client for DroidCam 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam 想让闲置的旧手机发挥新价值吗?DroidCam正是你需要的开源解决方案…...
HuggingFace Transformers库中Tokenizer与Model的高效实践指南
1. 为什么Tokenizer和Model是NLP项目的基石 第一次接触HuggingFace Transformers库时,我被Tokenizer和Model这两个组件的配合方式惊艳到了。想象一下,Tokenizer就像一位专业的翻译官,把人类能看懂的文字转换成计算机能理解的数字密码…...
决策树:从入门到精通,一个算法搞定分类与回归
还在为选择什么算法发愁?决策树既能分类又能回归,解释性还超强,今天带你彻底搞懂它一、引言如果你正在学习机器学习,那么决策树绝对是你绕不开的一道坎。为什么?因为它太实用了——银行用它来判断是否给用户批贷款&…...
