当前位置: 首页 > article >正文

关于maven的java面试题汇总

1.maven 是什么?

Maven是一个项目管理工具,它包含了一个项目对象模型(pom),一个项目生命周期(命令),一个依赖管理系统(坐标)

2、项目为什么选用 Maven 进行构建?

①Maven 是一个优秀的项目构建工具。使用maven,可以很方便的对项目进行分模块构建,简化项目结构,效率会提高很多。

②Maven 可以进行依赖的管理。使用 Maven,可以将不同系统的依赖进行统一管理,并且可以进行依赖之间的传递和继承,便于项目升级。

③maven有很多插件,便于功能扩展

3.maven仓库分几种

maven仓库分成两种

①本地仓库

②远程仓库

远程仓库又分成三种

1)中央仓库

2)私服

3)其他公共库

4.什么是私服

私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的 Maven 用户使用。当 Maven 需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为 Maven 的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。

常见的 Maven 私服的仓库类型:

  • (宿主仓库)hosted repository 。
  • (代理仓库)proxy repository 。
  • (仓库组)group repository 。

当前主流的 Maven 私服:

  • Apache 的 Archiva
  • JFrog 的 Artifactory
  • 【主流】Sonatype 的 Nexus 。
5.Maven的生命周期有哪些

常用的

1、clean:清理
2、package:打成Jar or War包,会自动进行clean+compile
3、install:将本地工程Jar上传到本地仓库
4、deploy:上传到私服

注意:执行后面的命令时,前面的命令自动得到执行。

**6.**Maven 坐标的含义
  • groupId:组织ID,定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.qjk)
  • artifactId:项目ID,定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
  • version:定义当前项目版本号
  • packaging:定义 Maven 项目打包的方式,如没有packaging,则默认为 jar 包。
  • classifier:该元素用来帮助定义构建输出的一些附件。附属构件与主构件对应。
7.为什么Maven进行了依赖管理,依然会出现依赖冲突?处理依赖冲突的手段是什么?

1出现的依赖冲突

(1) 传递依赖导致不同版本jar包冲突,maven采用就近原则排除了依赖路径比较远的jar,一般是ClassNotFound这类的错误

(2) 不同的jar包,出现了相同的类路径

2 jar包冲突的解决方案

(1) idea可以安装 Maven Helper插件,帮组分析出现冲突的jar包

(2) 使用ctrl+shift+alt+n 查找类路径所在的jar包,把对应的jar包在pom中排除

8.详细讲讲scope依赖范围

1、compile:默认的scope,运行期有效,需要打入包中。

2、provided:编译期有效,运行期不需要提供,不会打入包中。

3、runtime:编译不需要,在运行期有效,需要导入包中。(接口与实现分离)

4、test:测试需要,不会打入包中。

5、system:非本地仓库引入、存在系统的某个路径下的jar。(一般不使用)


http://www.kler.cn/a/536015.html

相关文章:

  • 【AI大模型】Ubuntu18.04安装deepseek-r1模型+服务器部署+内网访问
  • 链式结构二叉树(递归暴力美学)
  • UE5 蓝图学习计划 - Day 12:存储与加载
  • 深入理解 Java 接口的回调机制 【学术会议-2025年人工智能与计算智能(AICI 2025)】
  • 机器学习模型--线性回归、逻辑回归、分类
  • 【漫画机器学习】083.安斯库姆四重奏(Anscombe‘s Quartet)
  • 1 Java 基础面试题(上)
  • 物联网实训室解决方案(2025年最新版)
  • BUU26 [极客大挑战 2019]HardSQL1
  • Electron学习笔记,用node程序备份数据库(2)
  • Github 2025-02-07Java开源项目日报 Top9
  • 二叉树实现(学习记录)
  • 神经辐射场(NeRF):从2D图像到3D场景的革命性重建
  • Java面试题——事务
  • 【论文翻译】DeepSeek-V3论文翻译——DeepSeek-V3 Technical Report——第一部分:引言与模型架构
  • windows10环境下的Deepseek本地部署及接口调用
  • 网络安全威胁框架与入侵分析模型概述
  • 【PostgreSQL内核学习 —— (WindowAgg(三))】
  • golang命令大全12--命令速查表
  • Vue学习综合案例(四)
  • Spring的三级缓存如何解决循环依赖问题
  • 202412 青少年软件编程等级考试C/C++ 二级真题答案及解析
  • C++证件识别接口-身份证识别-护照识别-驾驶证识别-户口页识别
  • RabbitMQ 从入门到精通:从工作模式到集群部署实战(三)
  • 【AI大模型】Ubuntu18.04安装deepseek-r1模型+服务器部署+内网访问
  • Spring Boot篇