Maven(项目构建管理工具)

为什么要使用Maven?

传统项目管理状态分析:

①jar包不统一,jar包不兼容;

②工程升级维护过程操作繁琐;

...........

Maven(JAVA书写):管理jar包以及jar之间的依赖关系,完成项目编译,测试,打包,发布等工作。

Maven的作用:1,项目构建;2,依赖管理;3,统一开发结构。

Maven本质:项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

POM(Project Object Model):项目对象模型

Maven根目录下有一个pom.xml文件,指示Maven如何工作。pom.xml文件中配置项目基本信息以及项目构建信息等。比如项目坐标,项目依赖的jar包,插件,编译选项等。一旦在pom.xml文件中配置了所依赖的jar包,Maven会自动从构件仓库中下载相应构件。

  

 pom.xml

 项目坐标(groupid,artifactid,packaging,version):Maven为每个jar定义的唯一标志。通过坐标我们可以找到我们需要的任何版本的jar包。

Maven项目结构:

pom.xml配置

Maven仓库官网:https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient/3.1

可在官网下载自己所需要的jar包。一旦在pom.xml文件中配置了所依赖的jar包,Maven会自动从构件仓库中下载相应构件。

<dependencies><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><version>${junit.version}</version><scope>test</scope></dependency>
</dependencies>

在项目中引入坐标,运行时会自动下载jar包以及依赖(前提是有Maven环境) 

version:版本号

 type:默认jar

groupid:组id

artifactid:组件名

scope:控制jar包是否被打包到项目中。默认compile(编译和运行时依赖,打包)。provided(编译项目主代码和测试代码时使用此依赖,只在本地编译需要,不打包)4

Maven常用命令:

1,clean:删除编译的target

2,compile:编译

3,packge:打包

 

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

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

相关文章

持续集成部署-k8s-深入了解 Pod:Pod 的基础操作

持续集成部署-k8s-深入了解Pod 1. Pod 的基础操作1.1 查看 Pod 列表1.2 删除 Pod1.3 创建 Pod1. Pod 的基础操作 在操作 Pod 的时候,如果没有指定命名空间 Namespace 则,默认操作的是 default 下面的 Pod; 1.1 查看 Pod 列表 查看 Pod 列表:kubectl get po [root@docke…

【Java 进阶篇】JDBC数据库连接池Druid详解

在Java应用程序中&#xff0c;与数据库进行交互是一个常见的任务。为了更有效地管理数据库连接并提高性能&#xff0c;数据库连接池是一种常见的解决方案。Druid是一个流行的JDBC数据库连接池&#xff0c;它具有丰富的功能和高性能。本博客将详细介绍Druid连接池&#xff0c;包…

【GIT版本控制】--安装GIT

一、在不同操作系统上安装GIT 在不同操作系统上安装GIT非常容易&#xff0c;以下是针对不同操作系统的安装步骤&#xff1a; 在Windows上安装GIT&#xff1a; 访问 Git官方网站。下载适合您Windows版本的GIT安装程序&#xff08;32位或64位&#xff09;。运行下载的安装程序。…

【Java】PAT(Basic Level) 1016 部分A+B

前言 这道题很简单&#xff0c;轻松搞定&#xff01; 题目 1016 部分AB 作者 CHEN, Yue 单位 浙江大学 正整数 A 的“DA​&#xff08;为 1 位整数&#xff09;部分”定义为由 A 中所有 DA​ 组成的新整数 PA​。例如&#xff1a;给定 A3862767&#xff0c;DA​6&#xf…

eigen::Affine3d 转换

平移eigen::vector3d和四元数Eigen::Quaterniond 转 eigen::Affine3d Eigen::Vector3d t Eigen::Vector3d::Zero(); Eigen::Quaterniond q Eigen::Quaterniond ::Identity();Eigen::Affine3d affine3d t * q.toRotationMatrix(); Eigen::Matrix4d 转 eigen::Affine3d Eige…

6.Tensors For Beginners-What are Convector

Covectors &#xff08;协向量&#xff09; What‘s a covector Covectors are “basically” Row Vectors 在一定程度上&#xff0c;可认为 协向量 基本上就像 行向量。 但不能简单地认为 这就是列向量进行转置&#xff01; 行向量 和 列向量 是根本不同类型的对象。 …

2023年09月个人工作生活总结

本文为 2023 年 9 月工作生活总结。 研发编码 Alpine 容器 某工程部署于alpine镜像&#xff0c;当初看上是因为其体积小&#xff0c;其它微服务&#xff0c;在250MB左右&#xff0c;但那个工程只用50MB。最近发现时间戳转换不正确。对于同一时间字符串转时间戳函数&#xff0…

npm排错记录

统一node和npm版本&#xff1a; 目前node 16.13.1 npm 8.1.2 npm ERR! Cannot read properties of null (reading pickAlgorithm) 尝试清缓存 npm cache clear --force npm not working - "read ECONNRESET"和npm install returns "TypeError: Cannot convert …

APSIM模型】作物模型应用案例

APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生长模拟模型之一。APSIM模型有Classic和Next Generation两个系列模型&#xff0c;能模拟几十种农作物、牧草和树木的土壤-植物-大气过程&#xff0c;被广泛应用于精细农业、水肥管理、气候变化、粮食安…

【iptables 实战】9 docker网络原理分析

在开始本章阅读之前&#xff0c;需要提前了解以下的知识 阅读本节需要一些docker的基础知识&#xff0c;最好是在linux上安装好docker环境。提前掌握iptables的基础知识&#xff0c;前文参考【iptables 实战】 一、docker网络模型 docker网络模型如下图所示 说明&#xff1…

僵尸进程的产生与处理

僵尸进程是指在进程结束后&#xff0c;其父进程没有及时处理该进程的终止状态信息&#xff0c;导致该进程的进程描述符仍然存在于系统进程表中&#xff0c;但是已经没有实际的执行代码。这样的进程被称为僵尸进程。 僵尸进程的产生是由于父进程没有及时调用wait()或waitpid()等…

RabbitMQ-死信队列

接上文 RabbitMQ-java使用消息队列 1 死信队列简介 死信队列模式实际上本质是一个死信交换机绑定的死信队列&#xff0c;当正常队列的消息被判定为死信时&#xff0c;会被发送到对应的死信交换机&#xff0c;然后再通过交换机发送到死信队列中&#xff0c;死信队列也有对应的消…

基于Matlab求解高教社杯数学建模竞赛(cumcm2010A题)-储油罐的变位识别与罐容表标定(附上源码+数据+题目)

文章目录 题目解题源码数据下载 题目 通常加油站都有若干个储存燃油的地下储油罐&#xff0c;并且一般都有与之配套的“油位计量管理系统”&#xff0c;采用流量计和油位计来测量进/出油量与罐内油位高度等数据&#xff0c;通过预先标定的罐容表&#xff08;即罐内油位高度与储…

2023年7月工作经历二

invoke的翻译 C#的这个关键字很熟&#xff0c;但不知道如何翻译比较好。和网友沟通&#xff0c;并查阅多篇博文&#xff0c;觉得“同步调用&#xff08;invoke&#xff09;和异步调用(beginvoke)”比较好。 VS2022很爽 C#的类名&#xff0c;会提示命名空间。C调试的时候&…

洛谷_分支循环

p2433 问题 5 甲列火车长 260 米&#xff0c;每秒行 12 米&#xff1b;乙列火车长220 米&#xff0c;每秒行 20 米&#xff0c;两车相向而行&#xff0c;从两车车头相遇时开始计时&#xff0c;多长时间后两车车尾相离&#xff1f;已知答案是整数。 计算方式&#xff1a;两车车…

【Ubuntu】基于C++实现人脸识别

人脸识别考勤机 文章目录 人脸识别考勤机概述第一章 搭建Ubuntu环境1.1 什么是物联网1.2 物联网应该怎么学1.3 Linux开发环境搭建1.4 Linux基本使用1.5 Ubuntu网络配置 第二章 “hello,world!”程序2.1 什么是程序2.2 “hello,world!”程序2.3 C语法扩展2.4 常见错误调试 第三章…

ELK 处理 Spring Boot 日志

ELK 处理 Spring Boot 日志&#xff0c;妙啊&#xff01; 来源&#xff1a;ibm.com/developerworks/cn/java /build-elk-and-use-it-for-springboot -and-nginx/index.html ELK 简介 Logstash Elasticsearch Kibana ELK 实现方案 ELK 平台搭建 安装 Logstash 安装 Elas…

国庆day5

客户端 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);socket new QTcpSocket(this);//此时&#xff0c;已经向服务器发送连接请求了&#xff0c;如果成功连…

图的深度遍历-邻接矩阵实现

description 本题要求实现邻接矩阵存储图的深度优先遍历。 函数接口定义&#xff1a; void DFS(MGraph G,Vertex v); 其中MGraph是邻接矩阵存储的图&#xff0c;定义如下&#xff1a; #define MaxVertexNum 10 /定义最大顶点数/ typedef int Vertex;/* 用顶点下标表示顶点,…

机器学习 面试/笔试题(更新中)

1. 生成模型 VS 判别模型 生成模型&#xff1a; 由数据学得联合概率分布函数 P ( X , Y ) P(X,Y) P(X,Y),求出条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)的预测模型。 朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型&#xff08;LDA&#xff09;、限制玻尔兹曼机…