问题描述:
项目是通过父子模块分离的方式创建的,因此通过父模块进行版本管理
无论如何切换下载源和配置文件都会出现not found的错误
- 展示部分的pom依赖如下:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<!--解析Excel-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyexcel.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
</dependencies>
原因分析:
- 问题关键: <dependencyManagement>
该标签的作用是父模块对子模块的依赖版本的管理
仅仅是限制子模块中的版本信息
但是重点在于版本的管理 != 调用依赖
既然没有调用依赖就说明这个依赖的jar包就不会被引入到项目中
而不引入项目就意味着IDEA不会自动的把管理中的内容都下载到本地
解决方案:
将<dependencyManagement>里面需要引入信息,放到 <dependencies>里面,引入成功之后,再将信息挪回到<dependencyManagement>中
然后对应的子模块如果哪个要用的话,就在哪个子模块的pom文件中引入。不需要version标签了
<dependencies>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
</dependencies>
网友评论