上海紫昌网站建设,淘宝网网站建设目的,wordpress 响应 完整 模板,旺道seo工具【Java面试总结】Maven篇1.Maven坐标是啥2.Maven常见的依赖范围有哪些?3.多模块如何聚合4.对于一个多模块项目#xff0c;如果管理项目依赖的版本5.maven怎么解决版本冲突6.Maven常用命令有哪些#xff1f;1.Maven坐标是啥
一般maven使用groupID#xff0c;artifactId如果管理项目依赖的版本5.maven怎么解决版本冲突6.Maven常用命令有哪些1.Maven坐标是啥
一般maven使用groupIDartifactIdversionpackaging来表示一个项目的某个版本 2.Maven常见的依赖范围有哪些?
compile编译依赖范围默认使用此依赖范围对于编译、测试、运行三种都有效即在编译、测试和运行的时候都要使用该依赖 Jar包。test测试依赖范围从字面意思就可以知道此依赖范围只能用于测试而在编译和运行项目时无法使用此类依赖典型的是JUnit它只用于编译测试代码和运行测试代码的时候才需要。runtime运行时依赖范围对于测试和运行有效但是在编译主代码时无效典型的就是 JDBC 驱动实现。provided 此依赖范围对于编译和测试有效而对运行时无效。比如 servlet-api.jar 在 Tomcat中已经提供了我们只需要的是编译期提供而已。system不从maven仓库获取该jar,而是通过systemPath指定该jar的路径 3.多模块如何聚合
配置一个打包类型为pom的聚合模块然后在该pom中使用module元素声明要聚合的模块 4.对于一个多模块项目如果管理项目依赖的版本
通过在父模块中声明dependencyManagement和pluginManagement 然后让子模块通过parent元素指定父模块这样子模块在定义依赖是就可以只定义groupId和artifactId自动使用父模块的version,这样统一整个项目的依赖的版本。 5.maven怎么解决版本冲突
单纯依赖 Maven 来进行依赖调解在很多情况下是不适用的需要我们手动排除依赖。
举个例子当前项目存在下面这样的依赖关系
依赖链路一A - B - C - X(1.5) // dist 3
依赖链路二A - D - X(1.0) // dist 2根据路径最短优先原则X(1.0) 会被解析使用也就是说实际用的是 1.0 版本的 X。
但是这会一些问题如果 D 依赖用到了 1.5 版本的 X 中才有的一个类运行项目就会报NoClassDefFoundError错误。如果 D 依赖用到了 1.5 版本的 X 中才有的一个方法运行项目就会报NoSuchMethodError错误。
如何解决呢 我们可以通过exclusive标签手动将 X(1.0) 给排除。
dependency......exclusionsexclusionartifactIdx/artifactIdgroupIdorg.apache.x/groupId/exclusion/exclusions
/dependency6.Maven常用命令有哪些
install
本地安装 包含编译打包安装到本地仓库
编译 - javac 打包 - jar 将Java代码打包为jar文件
clean
清除已编译信息删除工程中的target目录
compile
只编译。javac命令
deploy
部署。常见于结合私服使用的命令。
相当于是install上传jar到私服。包含编译打包安装到本地仓库上传到私服仓库。
package
打包。包含编译打包两个功能