开发环境

IDEA2020.3,  jdk1.8.0_231

问题描述

开发中引入了druid-spring-boot-starter最新版本1.2.6,项目install时的时候一直出现警告

The POM for com.alibaba:druid:jar:1.2.6 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details

寻找问题

按照提示编辑运行配置,输出debug日志

install -X -f pom.xml

再次执行,得到详细的日志‘

[DEBUG] =======================================================================
[WARNING] The POM for com.alibaba:druid:jar:1.2.6 is invalid, transitive dependencies (if any) will not be available: 2 problems were encountered while building the effective model for com.alibaba:druid:1.2.6
[ERROR] 'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${project.basedir}/lib/openjdk-1.8-tools.jar @
[ERROR] 'dependencies.dependency.systemPath' for com.sun:jconsole:jar must specify an absolute path but is ${project.basedir}/lib/openjdk-1.8-jconsole.jar @

从日志看, com.sun:tools:jar,com.sun:jconsole:jar必须指定绝对路径,不能是相对路径!

但是是在哪里指定的呢?

仔细想了想,应该是在m2包目录下。结果真的在 druid-1.2.6.pom 文件中给找到了

pom文件在这里

C:\Users\admin\.m2\repository\com\alibaba\druid\1.2.6\druid-1.2.6.pom

使用notepad++ 打开搜索 com.sun,可以看到有两处,正式报错的两个地方!!!

com.alibaba.druid 这个包应该是使用OpenJDK构建的,所以添加了这两个依赖。

所以导致这个的原因也就明了了

  1. 开发环境使用的JDK和 com.alibaba.druid 包不一致;
  2. 这是 com.alibaba.druid 的一个bug,未考虑不同JDK环境的影响

解决问题

问题是找到了,该怎么解决呢?

目前,我想到的解决方案有3个

  1. 切换到其他版本,如 1.2.5。(已验证)
  2. 注释掉这两个依赖。正常开发没有影响。(已验证)
  3. 使用OpenJDK。(未验证)

还有一个办法就是视而不见,因为只是警告,并不影响使用。

后话

在  https://github.com/alibaba/druid 项目Issues 搜索也可以看到类似的问题。1.2.6 版本有人提,但是目前还没人解答

issue 地址 The POM for com.alibaba:druid:jar:1.2.6 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details · Issue #4305 · alibaba/druid · GitHub

有趣的是,这个问题在其他版本(1.1.21)也出现过,并且后来的版本也修复了。但是最近又出现了这样的问题...

The POM for com.alibaba:druid:jar:1.2.6 is invalid, transitive dependencies (if any) will not be available的更多相关文章

  1. Maven 错误 :The POM for com.xxx:jar:0.0.1-SNAPSHOT is invalid, transitive dependencies (if any) will not be available

    一个大的maven 项目,结构是一个根pom,下面几个小的module,包括了appservice-darc,appservice-entity等,其中appservice-darc 依赖了 apps ...

  2. maven编译问题之 -The POM for XXX is invalid, transitive dependencies (if any) will not be available

    问题一: 把父工程tao-parent install 到maven本地仓后,接着install tao-common工程,然后报错 报错信息如下: [WARNING] The POM for com ...

  3. mvn 报错 - The POM for <name> is invalid, transitive dependencies (if any) will not be available

    核心:  通过 mvn dependency:tree -X 分析依赖解决方案:  解决依赖冲突版本 1. MILGpController 编译突然报错 14:10:28 [ERROR] Failed ...

  4. The POM for XXX is invalid, transitive dependencies (if any) will not be available解决方案

    今天,某个开发的环境在编译的时候提示警告The POM for XXX is invalid, transitive dependencies (if any) will not be availab ...

  5. 阿里巴巴高新能数据源com.alibaba.druid.pool.DruidDataSource的jar包配置

    aspectjweaver-1.7.4.jar druid-0.2.9.jar 两个包,用于提供com.alibaba.druid.pool.DruidDataSource

  6. com.alibaba.druid.sql.parser.ParserException: syntax error, QUES %, pos 80 like报错解决

    最近,把各应用的jdbc连接池统一从dbcp2改成了druid,运行时druid报sql解析错误,如下: select * from test         where 1=1         &l ...

  7. Druid.jar包

    首先了解一下,什么是Druid. Druid是Java语言中最好的数据库连接池,它能够提供强大的监控和扩展功能. Druid是一个JDBC组件,它包括三部分: 1)DruidDriver 代理Driv ...

  8. com.alibaba.druid.pool.DruidDataSource : {dataSource-2} init error

    这几天准备写一个项目,其中的整合druid的时候,发现出现了下面这个错误.找了好久都没有找到.网上的各种解决方法都不对. 2018-11-07 16:26:28.940 INFO 19684 --- ...

  9. alibaba/druid 下的 密码加密

    使用ConfigFilter cliangch edited this page on 3 Feb · 12 revisions ConfigFilter的作用包括: 从配置文件中读取配置 从远程ht ...

随机推荐

  1. 查询 MySQL 字段注释的 5 种方法!

    很多场景下,我们需要查看 MySQL 中表注释,或者是某张表下所有字段的注释,所以本文就来盘点和对比一下查询注释的几种方式. 创建测试数据库 开始之前咱们先创建一个数据库,以备下面演示使用. -- 如 ...

  2. 搭建服务器之DNS

    DNS服务器,实用软件为bind,服务守护进程为named,一下记录一下自己的搭建过程: 1.yum install bind*  其中包括bind本身软件,测试dns的一些工具dig,nslooku ...

  3. gin框架的热加载方法

    gin是用于实时重新加载Go Web应用程序的简单命令行实用程序.只需gin在您的应用程序目录中运行,您的网络应用程序将 gin作为代理提供.gin检测到更改后,将自动重新编译您的代码.您的应用在下次 ...

  4. Docker 实操

    ---恢复内容开始--- 一.简介 Linux容器作为一类操作系统层面的虚拟化技术成果,旨在立足于单一Linux主机交付多套隔离性Linux环境.与虚拟机不同,容器系统并不需要运行特定的访客操作系统. ...

  5. JavaScript实现禁止打开控制台

    通过 JavaScript 实现禁止打开控制台(期中包括:右键审查元素.工具栏.F12.Shift+Ctrl+I) <!DOCTYPE html> <html lang=" ...

  6. ansible roles实践——安装java

    [root@master] /etc/ansible$ cat roles/java/tasks/main.yml ---- name: unzip jdk unarchive: src=jdk-8u ...

  7. Gc如何判断对象可以被回收?

    Gc如何判断对象可以被回收? 1 引用计数器 引用计数法的算法思路:给对象增加一个引用计数器,每当对象增加一个引用计数器+1,失去一个引用-1,所以当计数器是0的时候对象就没有引用了,就会被认为可回收 ...

  8. Water 2.5 发布,一站式服务治理平台

    Water(水孕育万物...) Water 为项目开发.服务治理,提供一站式解决方案(可以理解为微服务架构支持套件).基于 Solon 框架开发,并支持完整的 Solon Cloud 规范:已在生产环 ...

  9. python 列表删除元素,单个元素,多个连续或不连续元素

    以列表a为例 import numpy as np a = ['上海市', '云南省', '内蒙古', '四川省', '天津市', '宁夏', '安徽省', '山东省', '山西省'] 删除单个元素 ...

  10. python习题_读写csv格式的文件

    1.读写TXT文件 # *_* coding : UTF-8 *_* # 开发人员 : zfy # 开发时间 :2019/7/7 16:26 # 文件名 : lemon_10_file.PY # 开发 ...