import无法找到common依赖问题解决
一、流程
1、确定common模块pom文件继承父模块依赖,分组成功
<!-- 子模块 -->
<project>
<parent>
<!-- 父模块版本对应 -->
<artifactId>parent-modules</artifactId>
<groupId>com.xxx</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<!-- common子模块版本 -->
<artifactId>common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
2、确定父模块加入子模块
<!-- 父模块 -->
<project>
<modules>
<module>sub-module</module>
<module>common</module>
</modules>
<groupId>com.xxx</groupId>
<artifactId>parent-module</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>parent-module</name>
<description>父模块</description>
</project>
3、兄弟模块应用common添加依赖
<dependency>
<groupId>com.xxx</groupId>
<artifactId>common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
二、错误排查记录
1、完成后还不能引用common中的公共类
- 使用maven生命周期重新clean以及package common模块
- 如上clean以及package 兄弟模块sub-module
- 最后刷新兄弟模块的pom文件
2、进行’二、1. clean’时出错进程中断
- clean时中断,查看日志框中断报错上一级详细位置
- 大概率为某个模块依赖缺失,请补全依赖
- 如若在子模块中提示版本不存在,请看父模块是否指定依赖版本,补全
3、补全后pom文件爆红
手动重新加载刷新
刷新后仍未自动下载依赖且pom文件继续爆红
判断因使用
<dependencyManagement>
导致:
因为我的项目是springboot转springcloud,以前可能下载过该依赖,但由于我重装过maven以及迁移过仓库位置,导致依赖声明过但是仓库内不见了(按道理说迁移了仓库应该也能找到依赖 - - ->最后找到原因,看下文)
<dependencyManagement>
管理的依赖如果有声明将不再重新下载而是去本地仓库内拉取注释掉
<dependencyManagement>
后使用<dependencies>
包裹依赖重新下载,然后放开注释同时发现虽然maven的本地仓库迁移了、setting.xml也改了仓库路径,但是idea的maven设置没有重写指定setting.xml文件路径(原来idea一直在C盘的原仓库位置扫描,尴尬)
- 最后重新上面的’3、'的操作下载依赖之后重复’1、clean,package’的操作,终于!!!又报错了…
4、package报错
好消息是clean成功啦,坏消息是package报错了!!!!(心里十万只***)
不着急先看日志,日志提示找不到main入口(…common模块当然没有入口类)
琢磨一下感觉是maven打包有问题,看了下插件是spring-maven的,换成apache的没问题了(难道是spring-maven的打包插件默认得有main入口???新手不懂)
<project>
中加上下面的插件配置:<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
重复clean、package成功
终于结束了!!!
三、总结
好累,不总结了