12.Mave面试题
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面试题相关推荐
- Python必会的12道面试题,看看你会几题?
今天小编为大家收集了一些Python的面试题,最近好多小伙伴给我留言说在学习Python,希望可以多发一些Python的文章.小编非常欣慰有这么多好学的小伙伴,那大家加油,把Python学好,每天都进 ...
- 金三银四华为软件测试一面,12个面试题复盘
篇幅较长,请大家耐心看完,建议收藏慢慢看,另外文末给大家准备了面试资料(面试题加学习资料等),需要自取! 1.你认为做好测试计划工作的关键是什么? 参考答案: 软件测试计划就是在软件测试工作正式实施之 ...
- 软件设计师2008年12月下午试题4(C语言 动态规划)
[说明] 某公司供应各种标准的营养套餐.假设菜单上共有n项食物m1,m2,-,mn,每项食物mi的营养价值为vi,价格为pi,其中i=1,2,-,n,套餐中每项食物至多出现一次.客人常需要一个算法来求 ...
- 12.Java 面试题整理(JAVA 代码查错)
1.下面代码有什么错误 abstract class Name { private String name; public abstract boolean isStupidName(String n ...
- 3.12 杭电复试题2014
1.如果您曾经尝试在 Macintosh 上阅读 html 文档,您就知道如果没有安装网 景,那是多么困难. 现在,谁能忘记安装 HTML 浏览器呢?这很简单,因为大多数时候你在 MAC 电脑上不需要 ...
- 3.12 杭电复试题2013
1.简要描述:输入一个数,代表要检测的例子的个数,每个例子中:输入两 个时间(格式 HH:MM:SS),前面时间减去后面时间输出在时钟上显示的时间,格 式一样,如果是以为数字的前面补零. #inclu ...
- Java面试题阶段汇总
希望能够坚持不断的整理,做最全的Java面试题题库,帮助更多的人在面试过程中发挥出自己的实力.也希望自己能够持之以恒的做一件事情不忘初心,加油! 初级面试题 Java面试题-基础篇一 Java面试题- ...
- 阿里开发者招聘节 | 2019阿里巴巴技术面试题分享:20位专家28道题
为什么80%的码农都做不了架构师?>>> 为帮助开发者们提升面试技能.有机会入职阿里,云栖社区特别制作了这个专辑--阿里巴巴资深技术专家们结合多年的工作.面试经验总结提炼而成的 ...
- java comparator_【面试题】Java必考面试题全集(15)
Java基础面试题(15) 1:Comparator 与Comparable 有什么不同? 2:Object中有哪些方法? 3:说下jdk8中的一些新特性 4:在64 位 JVM 中,int 的长度是 ...
最新文章
- 重构第28 天 重命名bool方法(Rename boolean method)
- 网络营销外包专员浅析网络营销外包如何防止发布的外链被删除呢?
- 【推荐】Web 2.0 必读经典 !
- deepin终端编译c程序_Deepin Linux安装使用Visual Studio Code(VSCode)调试C++
- 全世界的狗都没有“生殖隔离” | 今日趣图
- 【视觉项目】【day4】8.24号实验记录(消除瓶子内部“边缘”)
- 空间站是如何绕地飞行的?张朝阳物理课开播啦
- WinForm 进度条简单实现
- c++语言题库,计算机二级c++题库软件下载
- [树状数组模板] 洛谷P3368
- Matrix Operations -- Transpose +Determinant + Adjugate+ Inverse + Gram-Schimidt +LUP + QR + Eigen
- office2016兼容mathtype问题
- 为什么爱奇艺会显示联通免流量服务器,联通爱奇艺流量定向包是怎么回事啊,是不是开通之后,这一个月里面看视讯免流量的...
- 大数据基础知识思维导图
- 怎么在中国使用chatgpt
- InnoDB存储引擎:引擎概况
- 经典网络-ResNet论文及实践
- 苹果手机视频去水印软件
- 位图(bmp)文件格式分析
- 《高级无线网络—4G技术》——第2章 物理层和多址接入2.1 高级时分多址——ATDMA...