当前位置:   article > 正文

Maven高级——继承与聚合——版本锁定_maven版本锁定

maven版本锁定

在前面的文章已经实现了Maven的继承,初次之外,还可以在父工程当中统一管理依赖的版本。

场景介绍

有一些依赖不是各个模块共有的,则需要到那些子模块当中单独配置了,这时需要到各个模块单独配置了,比如下图有一个模块都用到jwt依赖,那么就统一都用同一个版本的jwt.

但是如果要修改版本为0.9.2时就要每个子模块都要看一次,看看有没有jwt这个依赖,有就要改版本。

使用了<dependencyMangemanet>只是统一管理这个依赖的版本,并不会将这个标签里面的依赖传到子工程那里。 还是需要到部分的子工程那里手动引入jwt的依赖,只不过已经不需要指定依赖的版本。

 

 案例演示:

 将子工程里面那些非共有的依赖都复制粘贴到父工程的dependencyMangemanet标签里面,然后把子工程里面的版本号都删除即可。

在父工程中引入如下依赖,有jwt的,有web开发的的,有阿里云OSS的。

  1. <dependencyManagement>
  2. <dependencies>
  3. <dependency>
  4. <groupId>io.jsonwebtoken</groupId>
  5. <artifactId>jjwt</artifactId>
  6. <version>0.9.1</version>
  7. </dependency>
  8. <!--阿里云OSS的依赖-->
  9. <dependency>
  10. <groupId>com.aliyun.oss</groupId>
  11. <artifactId>aliyun-sdk-oss</artifactId>
  12. <version>3.15.1</version>
  13. </dependency>
  14. <dependency>
  15. <groupId>javax.xml.bind</groupId>
  16. <artifactId>jaxb-api</artifactId>
  17. <version>2.3.1</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>javax.activation</groupId>
  21. <artifactId>activation</artifactId>
  22. <version>1.1.1</version>
  23. </dependency>
  24. <!-- no more than 2.3.3-->
  25. <dependency>
  26. <groupId>org.glassfish.jaxb</groupId>
  27. <artifactId>jaxb-runtime</artifactId>
  28. <version>2.3.3</version>
  29. </dependency>
  30. <!--web开发的依赖-->
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-starter-web</artifactId>
  34. <version>2.7.5</version>
  35. </dependency>
  36. </dependencies>
  37. </dependencyManagement>

然后在子工程当中再次引入jjwt的依赖时不会再提示选择版本号了。

修改依赖版本号

如下图所示现在有两个子工程都有了jjwt的依赖,然后我们将父工程中的版本改成0.9.0之后,子工程里面的版本号也会跟着变成0.9.0. 

 另外有一个问题,如果将来用到的依赖较多,父工程里面将会配置大量依赖。

版本号也是零散的分布各个坐标当中,不便于集中管理。

解决方案

为了解决这个问题可以用到Maven的自定义属性的功能,虽然但是,这个也只有在一些大型项目中,有几十上百个依赖时才能体现出它的便利性,一般项目中都用不到。所以这里不再做演示。

在tlias-parent的父工程的父工程当中我们可以看见如下的依赖的版本管理,里面早已的指定了一堆依赖。 

小结

面试题目会考到

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/153795?site
推荐阅读
相关标签
  

闽ICP备14008679号