Mave面试题

  • 1.Maven仓库
  • 2.Maven的常用命令。package,install,deploy命令的区别。
  • 3.什么是Maven的坐标?
  • 4.Maven中的packaging
  • 5.Maven的依赖范围有哪些(在scope中指定)?
  • 6.Maven工程之间的关系
  • 7.pom.xml文件中的\标签的作用

1.Maven仓库

本地仓库: 默认为users.pc.m2.repository
远程仓库: 分为中央仓库和本地私服仓库 默认远程仓库使用Apache提供的中央仓库,一般我们要在配置文件里配置使用阿里元提供的镜像仓库。

2.Maven的常用命令。package,install,deploy命令的区别。

clean: 删除项目中已经编译好的信息,删除target目录
compile: 将src/main/java下的文件编译成class文件输出到target目录下
package: 将编译好的代码打包成jar,war的格式
install: 将打包好的文件放到本地仓库,为了让本地其它项目作为依赖使用
deploy: 将打包好的文件放到远程仓库,共享给其它开发人员和项目

package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库。
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。

3.什么是Maven的坐标?

Maven使用坐标进行唯一标识,Maven的坐标元素包括groupId,artifactId,versionId,packaging。其中packaging不是必选的,默认是jar
groupId通常为公司或组织名字,artifactId通常为项目名称,versionId为版本号。

4.Maven中的packaging

项目的打包类型为pom,jar,war
pom--------------->pom项目里没有java代码,也不执行任何代码,只是用在聚合工程和父工程中传递依赖用的。用来做jar包的版本控制
jar----------------->将会打包成jar用作jar包使用,packaging默认类型。
war-----------------> 将会打包成war,发布在服务器上的工程。如网站或服务。

5.Maven的依赖范围有哪些(在scope中指定)?

compile:默认依赖范围,编译测试运行都有效

provided: 编译和测试有效。使用此依赖范围的Maven依赖。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器已经提供,就不需要Maven重复地引入一遍(如:servlet-api)

runtime:只在运行时使用,例如jdbc驱动

test: 只在编译测试代码和运行测试的时候需要,应用正常运行不需要此依赖。典型的例子就是junit

system:系统范围与provided类似,不过你必须显式指定一个本地系统路径的JAR,此类依赖应该一直有效,Maven也不会去仓库中寻找它。但是,使用system范围依赖时必须通过systemPath元素显式地指定依赖文件的路径。

import:import范围只适用于依赖是pom类型的,用于一个 <dependencyManagement /> 对另一个 <dependencyManagement /> 的继承。当前工程可以是jar类型也可以是pom类型,没有影响。

type:用来声明引入依赖的类型,默认是jar

6.Maven工程之间的关系

Maven中每个项目都相当于是一个对象,对象和对象之间是有关系的。关系包含了依赖,继承,聚合
依赖:
(1)依赖是可以传递的

(2)依赖的原则
①最短路径原则(依赖传递的路径越短越优先)
②pom文件申明顺序优先(路径长度一样,则先申明的优先)
③覆写优先原则(子 pom 内声明的优先于父 pom 中的依赖。)

(3)当发生依赖的版本冲突时,我们可以通过dependency的exclusion元素排除掉依赖

继承:如果A工程继承B工程,就代表A工程默认依赖B工程的所有资源,也可以应用B工程中定义的所有资源信息(比如<properties>中定义的版本号)

我们springboot项目一般都会继承spring-boot-starter-parent,而spring-boot-starter-parent又继承了spring-boot-dependencies。<dependencyManagement>中的资源不会被子项目继承,
<dependencyManagement>主要是进行版本管理。里面的内容在子项目中依赖时坐标只需要填写<group id>和<artifact id>即可。这就是为什么我们springboot项目导入spring-boot-dependencies项目的<dependencyManagement>中的依赖时,不用填写版本号的原因

聚合:配置一个打包类型为pom的聚合模块(就是父工程packaging必须是pom类型),然后在该pom中使用<module>元素声明要聚合的模块。

7.pom.xml文件中的<optional>标签的作用

optional = true 相当于 java 中的关键字 final ,意思是 只在本项目中使用,不传递给子孙项目。子孙项目都需要强制引入才行。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> <!-- 防止将devtools依赖传递到其他模块中 -->
</dependency>

12.Mave面试题相关推荐

  1. Python必会的12道面试题,看看你会几题?

    今天小编为大家收集了一些Python的面试题,最近好多小伙伴给我留言说在学习Python,希望可以多发一些Python的文章.小编非常欣慰有这么多好学的小伙伴,那大家加油,把Python学好,每天都进 ...

  2. 金三银四华为软件测试一面,12个面试题复盘

    篇幅较长,请大家耐心看完,建议收藏慢慢看,另外文末给大家准备了面试资料(面试题加学习资料等),需要自取! 1.你认为做好测试计划工作的关键是什么? 参考答案: 软件测试计划就是在软件测试工作正式实施之 ...

  3. 软件设计师2008年12月下午试题4(C语言 动态规划)

    [说明] 某公司供应各种标准的营养套餐.假设菜单上共有n项食物m1,m2,-,mn,每项食物mi的营养价值为vi,价格为pi,其中i=1,2,-,n,套餐中每项食物至多出现一次.客人常需要一个算法来求 ...

  4. 12.Java 面试题整理(JAVA 代码查错)

    1.下面代码有什么错误 abstract class Name { private String name; public abstract boolean isStupidName(String n ...

  5. 3.12 杭电复试题2014

    1.如果您曾经尝试在 Macintosh 上阅读 html 文档,您就知道如果没有安装网 景,那是多么困难. 现在,谁能忘记安装 HTML 浏览器呢?这很简单,因为大多数时候你在 MAC 电脑上不需要 ...

  6. 3.12 杭电复试题2013

    1.简要描述:输入一个数,代表要检测的例子的个数,每个例子中:输入两 个时间(格式 HH:MM:SS),前面时间减去后面时间输出在时钟上显示的时间,格 式一样,如果是以为数字的前面补零. #inclu ...

  7. Java面试题阶段汇总

    希望能够坚持不断的整理,做最全的Java面试题题库,帮助更多的人在面试过程中发挥出自己的实力.也希望自己能够持之以恒的做一件事情不忘初心,加油! 初级面试题 Java面试题-基础篇一 Java面试题- ...

  8. 阿里开发者招聘节 | 2019阿里巴巴技术面试题分享:20位专家28道题

    为什么80%的码农都做不了架构师?>>>    为帮助开发者们提升面试技能.有机会入职阿里,云栖社区特别制作了这个专辑--阿里巴巴资深技术专家们结合多年的工作.面试经验总结提炼而成的 ...

  9. java comparator_【面试题】Java必考面试题全集(15)

    Java基础面试题(15) 1:Comparator 与Comparable 有什么不同? 2:Object中有哪些方法? 3:说下jdk8中的一些新特性 4:在64 位 JVM 中,int 的长度是 ...

最新文章

  1. 重构第28 天 重命名bool方法(Rename boolean method)
  2. 网络营销外包专员浅析网络营销外包如何防止发布的外链被删除呢?
  3. 【推荐】Web 2.0 必读经典 !
  4. deepin终端编译c程序_Deepin Linux安装使用Visual Studio Code(VSCode)调试C++
  5. 全世界的狗都没有“生殖隔离” | 今日趣图
  6. 【视觉项目】【day4】8.24号实验记录(消除瓶子内部“边缘”)
  7. 空间站是如何绕地飞行的?张朝阳物理课开播啦
  8. WinForm 进度条简单实现
  9. c++语言题库,计算机二级c++题库软件下载
  10. [树状数组模板] 洛谷P3368
  11. Matrix Operations -- Transpose +Determinant + Adjugate+ Inverse + Gram-Schimidt +LUP + QR + Eigen
  12. office2016兼容mathtype问题
  13. 为什么爱奇艺会显示联通免流量服务器,联通爱奇艺流量定向包是怎么回事啊,是不是开通之后,这一个月里面看视讯免流量的...
  14. 大数据基础知识思维导图
  15. 怎么在中国使用chatgpt
  16. InnoDB存储引擎:引擎概况
  17. 经典网络-ResNet论文及实践
  18. 苹果手机视频去水印软件
  19. 位图(bmp)文件格式分析
  20. 《高级无线网络—4G技术》——第2章  物理层和多址接入2.1 高级时分多址——ATDMA...

热门文章

  1. highlight高亮风格
  2. 计算机网络的性能指标(速率、带宽、吞吐量、时延、往返时延、时延带宽积、信道利用率)...
  3. 人脸识别SDK识别速度测试报告
  4. 【windows】jupyter安装
  5. 手机适配之 dimen 基础知识
  6. c语言课程设计-计算器
  7. dubbo+zipkin调用链监控
  8. Linux—用prctl()给线程命名
  9. C语言——用函数实现模块化设计
  10. 工具变量 两阶段的协变量_综合工具变量