专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 必备Maven面试题(附答案)

必备Maven面试题(附答案)

更新时间:2020-10-26 17:38:41 来源:星辉 浏览3546次

Maven这样的一个开发工具,是公司需要java工程师所具备的技能,那么避免不了的在java面试中就会考察到Maven的相关知识,今天的文章总结了大家在java面试题中必须要会的关于Maven的知识,也就是Maven面试题,下面一起来学习吧。

image.png

1、Maven 是什么?

答:Maven 主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。Maven 的主要功能主要分为5点:依赖管理系统;多模块构建;一致的项目结构;一致的构建模型和插件机制。


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

答:首先,Maven 是一个优秀的项目构建工具。使用maven,可以很方便的对项目进行分模块构建,这样在开发和测试打包部署时,效率会提高很多。

其次,Maven 可以进行依赖的管理。使用 Maven,可以将不同系统的依赖进行统一管理,并且可以进行依赖之间的传递和继承。


3、Maven的优点有哪些?

答:优点:(1)简化了项目依赖管理;(2)易于上手,对于新手可能一个 mvn clean package 命令就可能满足我们的工作;(3)便于与持续集成工具(Jenkins)整合;(4)便于项目升级,无论是项目本身升级还是项目使用的依赖升级;(5)有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译;(6)Maven 有很多插件,便于功能扩展,比如生产站点,自动发布版本等。


4、Maven的缺点有什么?

答:(1)maven是一个庞大的构建系统,学习难度大;(2)maven采用约定优于配置的策略(convention over configuration),虽然上手容易,但是一旦出了问题,难于调试;(3)当依赖很多时,m2eclipse 老是搞得Eclipse很卡;(4)中国的网络环境差,很多repository无法访问,比如google code, jboss 仓库无法访问等。


5、什么是maven本地仓库?Maven到底有哪些仓库?他们什么关系?

答:本地仓库路径配置。所以本地仓库就是相当于加了一层jar包缓存,先到这里来查。如果这里查不到,那么就去私服上找,如果私服也找不到,那么去中央仓库去找,找到jar后,会把jar的信息同步到私服和本地仓库中。私服,是公司内部局域网的一台服务器;中央仓库存储了互联网上的jar,由Maven团队来维护。

image.png

6、Maven的作用有哪些?

答:(1)maven主要是用来解决导入java类依赖的jar,编译java项目主要问题;(2)项目导入jar,是通过copy方式导入项目中,而且还会存在jar之间的依赖和冲突。而maven解决了这些问题,使用私服nexus解决这个问题;(3)jar 包管理,防止jar之间依赖起冲突。小组之间建立个私服务,大家都用通用的maven配置文件,不用自己手动去下载jar ,pom文件会自动管理下载好的jar包;(4)Maven是基于项目对象模型,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven能够很方便的帮你管理项目报告,生成站点,管理jar文件等。


7、maven的依赖原则有什么?

答:(1)依赖路径最短优先原则。一个项目Demo依赖了两个jar包,其中A-B-C-X(1.0) , A-D-X(2.0)。由于X(2.0)路径最短,所以项目使用的是X(2.0)。

(2)pom文件中申明顺序优先。如果A-B-X(1.0) ,A-C-X(2.0) 这样的路径长度一样怎么办呢?这样的情况下,maven会根据pom文件声明的顺序加载,如果先声明了B,后声明了C,那就最后的依赖就会是X(1.0)。

(3)覆写优先原则。子pom内声明的优先于父pom中的依赖。


8、Maven仓库是什么?

答:Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径。得益于 Maven 的坐标机制,任何 Maven项目使用任何一个构件的方式都是完全相同的,Maven 可以在某个位置统一存储所有的 Maven 项目共享的构件,这个统一的位置就是仓库,项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。对于Maven来说,仓库分为两类:本地仓库和远程仓库。


9、Maven的工程类型有哪些?

答:POM工程,POM工程是逻辑工程。用在父级工程或聚合工程中。用来做jar包的版本控制;JAR工程,将会打包成jar用作jar包使用。即常见的本地工程 - Java Project;WAR工程,将会打包成war,发布在服务器上的工程。如网站或服务。即常见的网络工程 - Dynamic Web Project。war工程默认没有WEB-INF目录及web.xml配置文件,IDE通常会显示工程错误,提供完整工程结构可以解决。


10、Maven常用命令有哪些?

答:(1)install,本地安装, 包含编译,打包,安装到本地仓库;(2)编译 - javac;(3)打包 - jar, 将java代码打包为jar文件;(4)安装到本地仓库 - 将打包的jar文件,保存到本地仓库目录中;(5)clean,清除已编译信息;(6)删除工程中的target目录;(7)部署,常见于结合私服使用的命令,相当于是install+上传jar到私服;(8)打包。包含编译,打包两个功能。


上面就是今天对Maven面试题的汇总整理。Maven可以说是开发工具里的项目构建利器Maven。希望大家可以掌握以上提到的Maven面试题,在面试的时候如果考到了以上题目,请确保能答对,如果对于教程的相关知识还不是很熟练,就可以在本站学习Maven教程。掌握更多的知识和技能,从而顺利通过面试。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>