项目中莫名出现${project.basedir} 解决方法

2018-05-21  本文已影响5060人  else05

一、 环境:

jdk: 8
spring-boot: 2.0.1
maven: 3.5.3

一、 问题描述:

  1. 项目中莫名的多了一个名字叫${project.basedir}的文件夹,猜测可能是变量引用没有声明,结果全局搜索了项目也没有发现引用这个变量的地方

    image.png
  2. 手动删除后,隔一段时间后又出现了,不知道是什么操作引起重现的。

二、问题重现:

  1. 在处理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

三、问题分析:

  1. 看了日志前后,发现是因为json-smart依赖引起的,全局搜索项目,没有发现pom.xml中有对json-smart的直接依赖,猜测是其它jar间接引入的。
  2. 上一行日志有个警告, 意思是json-smart:jar:2.3-SNAPSHOT这个版本依赖没有找到
The POM for net.minidev:json-smart:jar:2.3-SNAPSHOT is missing, no dependency information available
  1. 解决方法就是给json-smart指定一个已有的版本 , 但是项目中没有直接引用json-smart , 无法对其操作的版本进行操作, 但是我用dependencyManagement试了下,发现问题解决了!!

四、解决方法:

  1. 打开主pom.xml文件,在里增加一个dependencyManagement,(如果已经有了则不用加了,要注意先网上了解一下dependencyManagement和dependencies的区别
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>net.minidev</groupId>
            <artifactId>json-smart</artifactId>
            <version>2.3</version>
        </dependency>
    </dependencies>
</dependencyManagement>
上一篇 下一篇

猜你喜欢

热点阅读