Maven 依赖

        使用 Maven 构建产生的构件(例如 Jar 文件)被其他的项目引用,那么该构件就是其他项目的依赖。

依赖配置

配置信息示例

1.项目信息:

<project><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>my-project</artifactId><version>1.0.0</version><packaging>jar</packaging><name>My Project</name><description>This is a Maven project.</description>...
</project>
  • <modelVersion>:指定使用的 Maven 模型版本。
  • <groupId>:定义项目的组织或者组织唯一标识符。
  • <artifactId>:定义项目的唯一标识符。
  • <version>:定义项目的版本号。
  • <packaging>:定义项目的打包类型,例如 jar、war、pom 等。
  • <name>:定义项目的名称。
  • <description>:定义项目的描述信息。

2.依赖管理:

<project><dependencies><dependency><groupId></groupId><artifactId></artifactId><version></version><type>...</type><scope>...</scope><optional>...</optional><exclusions><exclusion><groupId>...</groupId><artifactId>...</artifactId></exclusion></exclusions></dependency></dependencies>
</project>
  • <dependencies>:一个 pom.xml 文件中只能存在一个这样的标签,是用来管理依赖的总标签。
  • <dependency>:包含在 dependencies 标签中,可以有多个,每一个表示项目的一个依赖。
  • <groupId>、<artifactId>、<version>(必要):依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven 根据坐标才能找到需要的依赖。
  • <type>(可选):依赖的类型,对应于项目坐标定义的 
  • <packaging>。大部分情况下,该元素不必声明,其默认值是 jar。
  • <scope>(可选):依赖的范围,默认值是 compile。
  • <optional>(可选):标记依赖是否可选exclusions(可选):用来排除传递性依赖,例如 jar 包冲突

3.构建插件:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin>...</plugins>
</build>
  • <build>:定义项目的构建配置。
  • <plugins>:包含项目构建插件的列表。
  • <plugin>:每个插件的具体配置。
  • <groupId><artifactId><version>:插件的组织ID、artifact ID 和版本号。
  • <configuration>:插件的配置参数,例如编译器版本等。

4.仓库配置:

<repositories><repository><id>central</id><url>https://repo.maven.apache.org/maven2</url></repository>...
</repositories>
  • <repositories>:定义项目的仓库列表。
  • <repository>:每个仓库的具体定义。
  • <id>:仓库的唯一ID。
  • <url>:仓库的URL地址。

5.插件仓库配置:

<pluginRepositories><pluginRepository><id>central</id><url>https://repo.maven.apache.org/maven2</url></pluginRepository>...
</pluginRepositories>
  • <pluginRepositories>:定义项目构建插件的仓库列表。
  • <pluginRepository>:每个插件仓库的具体定义。

依赖范围

classpath 用于指定 .class 文件存放的位置,类加载器会从该路径中加载所需的 .class 文件到内存中。

Maven 在编译、执行测试、实际运行有着三套不同的 classpath:

  • 编译 classpath:编译主代码有效
  • 测试 classpath:编译、运行测试代码有效
  • 运行 classpath:项目运行时有效

Maven 的依赖范围如下:

  • compile:编译依赖范围(默认),使用此依赖范围对于编译、测试、运行三种都有效,即在编译、测试和运行的时候都要使用该依赖 Jar 包。
  • test:测试依赖范围,从字面意思就可以知道此依赖范围只能用于测试,而在编译和运行项目时无法使用此类依赖,典型的是 JUnit,它只用于编译测试代码和运行测试代码的时候才需要。
  • provided:此依赖范围,对于编译和测试有效,而对运行时无效。比如 servlet-api.jar 在 Tomcat 中已经提供了,我们只需要的是编译期提供而已。
  • runtime:运行时依赖范围,对于测试和运行有效,但是在编译主代码时无效,典型的就是 JDBC 驱动实现。
  • system:系统依赖范围,使用 system 范围的依赖时必须通过 systemPath 元素显示地指定依赖文件的路径,不依赖 Maven 仓库解析,所以可能会造成建构的不可移植。

更多消息资讯,请访问昂焱数据。

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

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

相关文章

金融科技:重塑用户体验,驱动满意度飙升

随着科技的飞速发展&#xff0c;金融科技&#xff08;FinTech&#xff09;已经深入到我们生活的每一个角落&#xff0c;从日常支付到投资理财&#xff0c;再到跨境汇款&#xff0c;它都在悄无声息地改变着我们的金融行为。而在这背后一个不可忽视的驱动力就是金融科技对用户体验…

NoSQL之Redis集群--主从复制、哨兵模式、群集模式

目录 一、三大高可用方案 二、Redis 主从复制 1.主从复制的作用 2.主从复制流程 3.搭建Redis 主从复制 三、Redis 哨兵模式 1.哨兵的核心功能 2.哨兵模式的作用 3.哨兵结构组成 4.故障转移机制 5.主节点的选举 6.搭建Redis 哨兵模式 四、Redis 群集模式 1.概念 …

GIT版本管理工具轻松入门 | TortoiseGit

目录 一、下载git 二、下载tortoisegit&#xff08;可视化git&#xff09; 三、Git本地仓库创建 四、git克隆 五、添加&#xff0c;提交&#xff0c;推送&#xff0c;拉取 六、分支 七、冲突 八、忽略文件&#xff08;修改gitignore文件&#xff09; 一、下载git 安装…

大数据信用报告查询应该选什么样的平台?

随着大数据技术的不断发展&#xff0c;大数据信用报告查询平台也应运而生。这些平台通过数据挖掘和分析&#xff0c;为个人提供有关大数据信用的详细报告&#xff0c;帮助他们在做出决策时获得更多的信息。然而&#xff0c;面对众多的大数据信用报告查询平台&#xff0c;如何选…

Qt信号槽的坑

1、重载的信号&#xff08;以QSpinBox为例&#xff09; 像是点击按钮之类的信号槽很好连接&#xff0c;这是因为它的信号没有重载&#xff0c;如果像SpinBox那样有重载信号的话&#xff08;Qt5.12的见下图&#xff0c;不过Qt5.15LTS开始就不再重载而是换信号名了&#xff09;&…

KVB外汇:澳元/美元、澳元/纽元、英镑/澳元的走势如何?

摘要 本文对近期澳元/美元、澳元/纽元、英镑/澳元的技术走势进行了详细分析。通过对关键支撑位和阻力位的分析&#xff0c;我们可以更好地理解澳元在不同货币对中的表现。随着全球经济形势的变化&#xff0c;各国央行的货币政策对外汇市场的影响也愈发明显。本文旨在帮助投资者…

OpenCV-Python不同版本更新的内容

OpenCV-Python是OpenCV库的Python接口&#xff0c;从3.0版本之后&#xff0c;不同版本的更新内容主要包括以下几点&#xff1a; 3.1版本&#xff1a;新增了一些特征检测和描述符匹配的算法&#xff0c;改进了GPU模块&#xff0c;提高了性能。3.2版本&#xff1a;引入了dnn模块…

牛客小白月赛97:D走一个大整数迷宫

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 给一个 nmn\times mnm 矩阵迷宫&#xff0c; 第 iii 行第 jjj 列的值为 ci,jc_{i,j}ci,j​ &#xff0c;LHLHLH 在迷宫中迷路了&#xff0c;他需要你的帮助。 LHLHLH 当前在 (1,1)(1…

E: 无法定位软件包 libmariadbclient-dev

如果在 Ubuntu 上无法找到 libmariadbclient-dev 或 libmariadb-client-lgpl-dev 包&#xff0c;可能是因为你的软件源没有正确配置或者名称略有不同。你可以按照以下步骤检查和解决问题&#xff1a; 更新软件包列表&#xff1a; 在执行安装命令之前&#xff0c;首先确保你的软…

全面指南:训练AudioLM音频生成模型的步骤与策略

1. 理解AudioLM模型 首先&#xff0c;需要对AudioLM模型有一个基本的理解&#xff0c;包括其架构、用途和优势。 2. 数据收集与预处理 收集高质量的音频数据是训练成功的第一步。预处理包括去噪、归一化、分割等步骤&#xff0c;以确保数据适合模型训练。 3. 特征提取 根据…

Ubuntu 20.04.4 LTS 离线安装docker 与docker-compose

Ubuntu 20.04.4 LTS 离线安装docker 与docker-compose 要在Ubuntu 20.04.4 LTS上离线安装Docker和Docker Compose&#xff0c;你需要首先从有网络的环境下载Docker和Docker Compose的安装包&#xff0c;然后将它们传输到离线的服务器上进行安装。 在有网络的环境中&#xff1a…

百日筑基第五天-关于maven

百日筑基第五天-关于maven Maven 是什么 Maven 是一个项目管理工具&#xff0c;它包含了一个项目对象模型&#xff08;Project Object Model&#xff09;&#xff0c;反映在配置中&#xff0c;就是一个 pom.xml 文件。是一组标准集合&#xff0c;一个项目的生命周期、一个依赖…

加固三防平板如何提高轨道交通系统的运营效率?

在当今快节奏的社会中&#xff0c;轨道交通系统作为城市交通的重要组成部分&#xff0c;其运营效率的提升对于缓解交通拥堵、满足人们的出行需求以及促进城市的发展具有至关重要的意义。而加固三防平板作为一种先进的技术设备&#xff0c;正逐渐在轨道交通领域发挥着关键作用&a…

【Vue pnpm install报错问题】

出现问题&#xff1a; pnpm install命令下安装依赖发现的错误&#xff1a; npm ERR! code ENOENTnpm ERR! syscall spawn gitnpm ERR! path gitnpm ERR! errno -4058npm ERR! enoent Error while executing:npm ERR! enoent undefined ls-remote -h -t ssh://gitgithub.com/s…

机器人控制系列教程之Simulink中模型搭建(1)

机器人模型获取 接上期&#xff1a;机器人控制系列教程之控制理论概述&#xff0c;文中详细讲解了如何通过Solidworks软件导出URDF格式的文件。文末提到了若需要将其导入到Simulink中可在命令行中输入smimport(urdf/S_Robot_urdf.urdf)&#xff0c;MATLAB将自动打开Simulink以…

《数据结构与算法基础 by王卓老师》学习笔记——1.4算法与算法分析

一、算法 1.1算法的研究内容 1.2算法的定义 1.3算法的描述 以下是算法的自然语言描述 以下是算法的传统流程图表示 以下是NS流程图表示 1.4算法和程序的区别与联系 1.5算法的五个特性 1.6算法设计的要求 Robustness也称为鲁棒性 二、算法分析 2.1算法时间效率的度量 2.1.1事…

JavaParser抽取测试用例对应的被测方法

背景介绍 博主目前要做的工作需要将一个java项目的所有RD手写的测试用例和被测方法对应起来&#xff0c;最后将得到的结果存入一个json文件。 本教程以项目GitHub - binance/binance-connector-java 为例。 结果展示 最终会得到一个 funcTestMap.json&#xff0c;里面存放着…

【Android面试八股文】Android组件内核面试题:Intent显示跳转与隐式跳转,如何使用?

文章目录 1.显示意图与隐式意图的区别,说说你的简单理解?1.1 显式意图(Explicit Intent)1.2 隐式意图1.3 显式意图和隐式意图的应用场景2.你在工作中,留意过在Android中Intent显示跳转和隐式跳转,如何使用?2.1 显式 Intent 调用2.2 Intent隐式跳转 Action2.3 Intent隐式…

快速清理Word中的嵌套表格

实例需求&#xff1a;Word文档中表格有的单元格中包含嵌套表格&#xff08;注意其中表格中有合并单元格&#xff09;&#xff0c;如下图所示。 现在需要删除单元格顶部的嵌套表格&#xff08;如上图中的表格1和表格3&#xff09;&#xff0c;如下图所示&#xff0c;如果表格较多…

整合Spring Boot和Apache Solr进行全文搜索

整合Spring Boot和Apache Solr进行全文搜索 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在现代应用开发中&#xff0c;全文搜索是许多应用不可或缺的功能之…