一、場景
在打包項目時,發現有一個maven提示:
The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar
查資料發現, commons-io 的 groupId 已經更換爲 commons-io,故對其進行更換。
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
更換後重新打包模塊,提示:
dependencies.dependency.version is missing
二、原因
可能有原因有幾個:
1)沒有在父工程的 dependencyManagement 中定義 commons-io 的版本號
2)父工程中定義的版本號,沒有被子工程繼承
三、錯誤排查和解決
3.1 查看版本號
發現版本號的確有定義
3.2 子工程是否繼承
網上有大佬提示:
maven 對於父項目定義的dependencyManagement 中的 非 jar 類型的 type節點不會繼承,也就是說子項目中必須再次聲明非 jar 類型的type即可。
在子項目中對於缺少版本號的依賴寫上版本號
根據提示,我用下面的方式解決了:
在子項目中先添加上了版本號,再重新打包。
打包成功後刪除添加的這個版本號,再次打包。
感謝大佬~