maven install 或 package 時 ,執行警告報錯:
[WARNING] The POM for com.xx-base:jar:1.0 is missing, no dependency information available
[ERROR] Failed to execute goal on project xx-mobi: Could not resolve dependencies for project com.xx-mobi:jar:1.0: Failed to collect dependencies at xx-base:jar:1.0: Failed to read artifact descriptor for xx-base:jar:1.0: Could not find artifact xx-root:pom:1.0 in geotoolrepo...
這是因為maven項目子模塊在執行安裝打包相關操作的時候,沒有先執行公共模塊。即項目有一個公共模塊xx-base; 當前需要執行的模塊為xx-mobi,那么應該先install xx-base,再執行xx-mobi 相關的操作。
場景
如下圖使用Maven創建的一個多模塊項目,一個wa-service
模塊,一個wa-app
模塊,wa-app
模塊依賴於wa-service
模塊,且他們都是WebAppDemo
的子模塊。
報錯及分析
- 對wa-app模塊執行打包,報[WARNING] The POM for com.mxc:wa-service:jar:1.0-SNAPSHOT is missing, no dependency information available,打包失敗。
- 根據上述錯誤信息,初步分析是在倉庫中沒有找到依賴的wa-service模塊的jar包。於是想到先對wa-service模塊進行安裝操作,然后在對wa-app模塊執行打包,但結果仍然是報[WARNING] The POM for com.mxc:wa-service:jar:1.0-SNAPSHOT is missing, no dependency information available,原因不明。
解決
通過百度,找到一種解決方案:先在父模塊WebAppDemo上執行install打包安裝,之后就可以對wa-app模塊執行打包操作了。
說明:對父模塊進行打包安裝操作,會同時對它下面的所有子模塊進行打包安裝。針對上面的項目,父模塊打包安裝之后,在本地倉庫可以找到三個模塊打包安裝之后的文件。
我的maven本地倉庫地址是C:\Users\Administrator\.m2\repository