is invalid, transitive dependencies (if any) will not be available解決方案

問題描述
maven項目在編譯的時候報如下WARNING:

[WARNING] The POM for com.winwill.test:0.0.1-SNAPSHOT is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details

翻譯一下:

com.winwill.test:0.0.1-SNAPSHOT失效,如果該pom下有任何間接依賴,這些依賴將會失效。開啓debug獲取更多信息。

比如如下場景,我有三個項目A, B, C,依賴關係如下: 

è¿éåå¾çæè¿°


假如B invalid了,那麼A通過B間接依賴的C就會失效,導致A項目編譯不過。

問題定位
google了很長時間,沒有在網上找到能解決我的問題的答案,那就自己動手來定位問題的原因,按照maven的提示打開debug日誌,在A項目下執行如下命令:

 mvn -X -U clean package 
1
再次查看編譯日誌,這時候在[WARNING] The POM for com.winwill.test:0.0.1-SNAPSHOT is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details日誌的下一行會有類似如下提示:

[ERROR] ‘dependencies.dependency.version’ for xxx:yyy:jar is missing. @-

這是ERROR日誌,感覺應該是問題的root cause,這行日誌表示B項目中依賴的xxx:yyy沒有指定version。

在B項目中爲xxx:yyy加上version之後再次編譯,發現一切ok~~

簡單總結
項目中依賴其他jar時,如果不指定version,或者version在父pom中通過DependencyManagement指定但是父pom沒有deploy時,可能會導致項目jar invalid。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章