Maven面试/工作常用知识-------------进阶

1.jar包冲突

例如项目中引入了这两个jar包
在这里插入图片描述
解决jar包冲突 , 需要借助idea , 可以看到spring-beans,spring-context 都依赖了 spring-core , 分别对应了自己的版本 ,
在这里插入图片描述
解决方法:

  1. 在pom文件中优先声明的才会有较高的优先级决定传递依赖的jar包版本
    在这里插入图片描述
  2. 将冲突的jar包在pom文件中声明
    在这里插入图片描述
  3. <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> </exclusions>
    在坐标中配置这个标签可以排除传递依赖中指定的jar包
    在这里插入图片描述

2.pom文件标签

dependencyManagement 父子模块的依赖管理
在这里插入图片描述
properties 标签
将版本号已变量的形式提出 , 方便进行统一修改
在这里插入图片描述

3.父子模块

  1. maven对资源的可重用性
    将一个单体应用中不同的模块进行打包 , 符合maven的依赖管理 , 以后这些模块在其他项目中使用时 , 可以直接引入模块的坐标 . 方便维护 .
    比如将一个单体ssm电商项目中的订单与用户模块看做子模块 , 并给与对应坐标 , 这些子模块可以在其他项目中通过pom文件引入

  2. 工程project与模块module的区别
    继承与依赖 , 父工程与子模块间属于直接依赖 (继承) , 子模块开始就可以使用父工程的所有资源 , 但是子模块和子模块之间 , 需要在pom.xml声明依赖关系

4.细节

  1. 作用域 标签<scope> 中的属性值有
    compile 编译时有效 防止代码报红
    test 测试时有效 junit 常用配置
    runtime 运行期有效
    provided compile 与test 时有效 打包时忽略
    如果父模块配置了junit 作用域为test , 子模块中是无法使用的 , 需要单独引入

  2. 父工程启动与子模块启动
    一个模块的启动需要确保他的所有依赖都能在仓库中找到,例如通过web子模块启动项目前,需要执行一次父工程的install命令 , 让父工程所有的依赖jar包都打入本地仓库.

  3. 子模块间在路径结构上相同的资源会编译后会放在同目录, 需要注意文件名称 .
    如果在web项目中web.xml中需要配置对于service 层的spring监听器 , 需要使用到spring中的配置文件 , 编译时防止报错, 需要在web模块中 ,按照路径添加一份配置文件 , 配置文件中只需要引入缺失的spring配置文件即可.

  4. 安装第三方jar包
    与第三方公司对接时 , 有时需要用到对方的jar包用来做接口认证 , 或者代理 , 此时需要将第三方的jar包放到本地仓库和公司的私服上 , 让团队成员项目中都能使用到
    安装到本地仓库 对照一个坐标(jar包提供方提供)的三要素 , 组织名 , 项目名 ,版本号 , 然后加上jar包的路径 , 通过maven的命令即可安装到本地仓库
    安装到nuxes私服 需要额外在maven目录下的setting.xml中配置登录私服的认证信息.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值