Spring Boot 配置 Druid 数据源构建时报错 `'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path`
Spring Boot 配置 Druid 数据源构建时报错
Errors occurred while build effective model from C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\com.alibaba\druid\1.2.11\7a2e5cad15e457ab8d36d01a442d1aac667fd560\druid-1.2.11.pom:
'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path
but is ${project.basedir}/lib/openjdk-1.8-tools.jar in com.alibaba:druid:1.2.11
'dependencies.dependency.systemPath' for com.sun:jconsole:jar must specify an absolute path
but is ${project.basedir}/lib/openjdk-1.8-jconsole.jar in com.alibaba:druid:1.2.11
配置操作参照 Spring Boot中使用 MyBatis,项目使用的 Gradle 构建,添加依赖如下:
implementation 'org.springframework.boot:spring-boot-starter-jdbc:2.7.2'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'
implementation 'com.alibaba:druid-spring-boot-starter:1.2.11'
百度找到大概原因是 alibaba 团队不怎么重视这个 Druid 构建时报的错误,如果是使用的 jdk1.8 就没有问题(猜测,问题里说没有兼容JDK11),但如果使用了高版本,就只能自己处理了。但这个不影响运行,是可以忽略的。也有人提到修改 druid-1.2.11.pom
文件,找到 com.sun:tools
和 com.sun:jconsole
两个依赖,注释掉就行,测试是可行的。
之后又遇到一个问题:Druid 监控后台打不开。教程里Druid数据源配置除了 url-pattern: /druid/*
,还设置了一个 context-path
:
server:
context-path: /web
所以 Druid 监控默认的访问地址是 http://localhost:8080/web/druid/
。但这访问不了,网上找了一下,有的提到是依赖 implementation 'com.alibaba:druid:1.2.11'
的问题,应该改成 com.alibaba:druid-spring-boot-starter:1.2.11
,显然我方面没有问题。
又发现一篇说是 springboot 2.0 以后要设置 server.servlet.context-path
,而 server.context-path
在 springboot 2.0 以下起作用。试了一下,完全正确,但没有找到 springboot 关于 server 配置的文档。