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


開發環境

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)也出現過,並且后來的版本也修復了。但是最近又出現了這樣的問題...

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM