因为偷懒没写dependencyManagement一晚上白干
事情是这样的,最近在学习DDD架构,感觉就像个小型微服务,目录结构是这样的,mq和job不列出来了
父工程root
|___ api
|___ application
|____|___controller
|___ domain
|___ infra
|___ common
|___ starter
事情是这样的,我在infra层的pom.xml里面引入了我的common层,然后我对common层的依赖的版本进行了变更,按道理来说
infra既然已经导入了common的依赖,那common的依赖变更了,infra下包含的common的依赖应该也会变更才对,这时候出问题了
这个时候我还没当回事,我以为是缓存的问题,然后我就进行maven的缓存清理 mvn clean install -U 发现还是没用
真给我整懵了,这怎么回事呢?
接下来的原因就是导致我一晚上白干的伏笔了,我因为偷懒,没有在父工程的pom里面规定依赖版本,直接把依赖版本写到了common的pom里面,至于为什么依赖版本写到common的pom里面后更新依赖版本Maven多模块版本依赖出错的问题我到现在也不理解,因为我父工程并没有限制lombok的版本,所以也不存在父工程版本控制的可能,后面才想起来自己没有做父工程的依赖版本管理
为自己的偷懒买单了,在父工程的pom里面进行版本管理
- 父工程的pom添加下面这个
<properties>
<lombok.version>1.18.26</lombok.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
- common包下的pom修改成这个
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
总结
我为什么要修改这个版本呢?其实在本地进行打包啊什么的都没有出现任何错误的,都是正常的
但是我在尝试将项目放到jenkins上进行自动化部署的时候,出现了问题,问题是这样的
一句话就是:lombok版本低了,要提高,就因为自己偷懒没写dependencyManagement一晚上都在不断的刷新maven刷新maven