一、 环境:
jdk: 8
spring-boot: 2.0.1
maven: 3.5.3
一、 问题描述:
-
项目中莫名的多了一个名字叫
${project.basedir}
的文件夹,猜测可能是变量引用没有声明,结果全局搜索了项目也没有发现引用这个变量的地方
image.png
-
手动删除后,隔一段时间后又出现了,不知道是什么操作引起重现的。
二、问题重现:
- 在处理maven依赖问题时,执行了
mvn clean package -U
,偶然看到日志框中出现了${project.basedir}
, 最后反复操作确定了就是mvn clean package -U
在重新下载依赖时会引起此问题。
[WARNING] The POM for net.minidev:json-smart:jar:2.3-SNAPSHOT is missing, no dependency information available
Downloading from project.local: file:${project.basedir}/src/main/site/resources/repo/net/minidev/json-smart/maven-metadata.xml
-
image.png
三、问题分析:
- 看了日志前后,发现是因为json-smart依赖引起的,全局搜索项目,没有发现pom.xml中有对json-smart的直接依赖,猜测是其它jar间接引入的。
- 上一行日志有个警告, 意思是
json-smart:jar:2.3-SNAPSHOT
这个版本依赖没有找到
The POM for net.minidev:json-smart:jar:2.3-SNAPSHOT is missing, no dependency information available
- 解决方法就是给json-smart指定一个已有的版本 , 但是项目中没有直接引用json-smart , 无法对其操作的版本进行操作, 但是我用dependencyManagement试了下,发现问题解决了!!
四、解决方法:
- 打开主pom.xml文件,在里增加一个dependencyManagement,(如果已经有了则不用加了,要注意先网上了解一下dependencyManagement和dependencies的区别)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
</dependencyManagement>
网友评论