maven常见面试题

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、说说你熟悉哪些maven命令

mvn archetype:generate 创建Maven项目

mvn compile 编译源代码

mvn deploy 发布项目

mvn test-compile 编译测试源代码

mvn test 运行应用程序中的单元测试

mvn site 生成项目相关信息的网站

mvn clean 清除项目目录中的生成结果

mvn package 根据项目生成的jar

mvn install 在本地Repository中安装jar

mvn eclipse:eclipse 生成eclipse项目文件

mvnjetty:run 启动jetty服务

mvntomcat:run 启动tomcat服务

mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包跳过测试类

二、如何解决依赖传递引起的版本冲突

可通过dependency的exclusion元素排除掉依赖。

三、说说maven的依赖原则

最短路径原则依赖传递的路径越短越优先

pom文件申明顺序优先路径长度一样则先申明的优先

覆写原则当前pom文件里申明的直接覆盖父工程传过来的

四、说说依赖的解析机制

当依赖的范围是 system 的时候Maven 直接从本地文件系统中解析构件。

根据依赖坐标计算仓库路径尝试直接从本地仓库寻找构件如果发现对应的构件就解析成功。如果在本地仓库不存在相应的构件就遍历所有的远程仓库发现后下载并解析使用。如果依赖的版本是 RELEASE 或 LATEST就基于更新策略读取所有远程仓库的元数据文件groupId/artifactId/maven-metadata.xml将其与本地仓库的对应元合并后计算出RELEASE 或者 LATEST 真实的值然后基于该值检查本地仓库或者从远程仓库下载。如果依赖的版本是 SNAPSHOT就基于更新策略读取所有远程仓库的元数据文件将它与本地仓库对应的元数据合并得到最新快照版本的值然后根据该值检查本地仓库或从远程仓库下载。如果最后解析得到的构件版本包含有时间戳先将该文件下载下来再将文件名中时间戳信息删除剩下 SNAPSHOT 并使用以非时间戳的形式使用。

五、说说插件的解析机制

与依赖的构件一样插件也是基于坐标保存在Maven仓库中。在用到插件的时候会先从本地仓库查

找插件如果本地仓库没有则从远程仓库查找插件并下载到本地仓库。与普通的依赖构件不同的

是Maven会区别对待普通依赖的远程仓库与插件的远程仓库。前面提到的配置远程仓库只会对普

通的依赖有效果。当Maven需要的插件在本地仓库不存在时是不会去我们以前配置的远程仓库查找

插件的而是需要有专门的插件远程仓库。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6