Maven面试题及答案

简介: Maven面试题及答案

1、Maven有哪些优点和缺点

优点:

1、简化项目依赖管理

2、方便与持续集成工具(Jenkins)整合

3、有助于多模块项目开发,比如一个模块开发好后发布到仓库,依赖该模块时可以直接从远程仓库更新,不用自己手动去编译

4、有很多插件,便于扩展,比如:生产站点,自动发布版本

缺点:

1、maven是个庞大的工具,学习成本大

2、maven采用约定大于配置的策略,出现问题很难调试

3、当依赖很多时,m2仓库会使开发工具变卡

2、Maven的生命周期

maven有三大生命周期,分别为:

1、clean 周期:主要用于清理上一次构建产生的文件,可以理解为删除target目录

2、默认周期

主要阶段包含:

1)process-resources 默认处理src/test/resources/下的文件,将其输出到src的classpath目录中

2)compile 编译src/main/java下的java文件,产生对应的class

3)process-test-resources 默认处理src/test/resources/下的文件,将其输出到测试的classpath目录中

4)test-compile 编译src/test/java下的java文件,产生对应的class

5)test 运行测试用例

6)package 打包构件,即生成对应的jar, war等

7)install将构件部署到本地仓库

8)deploy 部署构件到远程仓库

3、site周期

主要阶段包含:

site 产生项目的站点文档

site-deploy 将项目的站点文档部署到服务器

3、Maven常见的依赖范围

  • compile :默认范围,用于编译
  • provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
  • runtime: 在执行时需要使用
  • test: 用于test任务时使用
  • system:需要外在提供相应的元素。通过systemPath来取得
  • systemPath: 仅用于范围为system。提供相应的路径
  • optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用

4、多模块如何聚合

配置一个打包类型为pom的聚合模块,然后在该pom中使用元素声明要聚合的模块

5、多模块项目如何管理项目依赖的版本

通过在父模块中声明dependencyManagement和pluginManagement, 然后让子模块通过元素指定父模块,这样子模块在定义依赖是就可以只定义groupId和artifactId,自动使用父模块的version,这样统一整个项目的依赖的版本

6、如何保证项目传递依赖不会引起版本冲突

使用的元素将会引起冲突的元素排除


目录
相关文章
|
缓存 架构师 Java
Maven实战进阶(01)面试官:Maven怎么解决依赖冲突?| 有几种解决方式
本文介绍了Maven的核心功能和依赖管理技巧。Maven是基于项目对象模型(POM)的构建工具,具备跨平台、标准化、自动化等特性。其三大核心功能为依赖管理、仓库管理和项目构建。依赖管理通过pom.xml文件引入第三方组件并自动下载;仓库管理涉及中央仓库、私服和本地仓库;项目构建则通过生命周期管理编译、测试、打包等流程。文章还详细讲解了依赖冲突的解决方法,包括默认规则、手工排除和版本指定等策略。
|
存储 Java 项目管理
Maven-高频面试题
Maven-高频面试题
167 0
|
Java 程序员 应用服务中间件
程序员的31大Maven面试问题及答案
程序员的31大Maven面试问题及答案
|
Java 应用服务中间件 测试技术
Maven面试题
什么是maven私服?
223 0
|
存储 缓存 Java
搞懂这7个Maven问题,带你吊打面试官!
在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个多模块的项目足以让你头疼,依赖冲突就会让你不知所措,甚至搞不清楚项目是如何运行起来的....
249 0
搞懂这7个Maven问题,带你吊打面试官!
|
7月前
|
Java 区块链 Maven
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
621 3
|
6月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
374 0
|
Java Maven 开发者
maven项目中官方setting.xml文件
`settings.xml` 是 Maven 的配置文件,用于定义用户或全局级别的构建行为。它包含本地仓库路径、网络代理、服务器认证、仓库镜像及构建配置文件等设置,帮助开发者根据环境定制 Maven 行为,提升构建效率与灵活性。
1358 0
|
9月前
|
Java 测试技术 项目管理
【JavaEE】从 0 到 1 掌握 Maven 构建 Java 项目核心技巧 解锁 Java 项目高效管理实用实例
本文从Maven基础概念讲起,涵盖安装配置、核心概念(如POM与依赖管理)及优化技巧。结合Java Web项目实例,演示如何用Maven构建和管理项目,解决常见问题,助你高效掌握这一强大工具,提升Java开发与项目管理能力。适合初学者及进阶开发者学习。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
316 6
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
751 1
从零开始学 Maven:简化 Java 项目的构建与管理