狀況:項目是分模塊建立的,一些公共的方法是單獨的一個模塊common,其餘模塊依賴於此模塊,poom依賴已經添加了,項目能夠正常運行,但使用maven打包時出現了問題:找不到依賴的jar包;java
解決歷程spring
1. 首先對項目common依次進行clean、install。(注意:package和install是有區別的,package是把jar打到本項目的target下,而install時把target下的jar安裝到本地倉庫,供其餘項目使用.)maven
2. 檢查在Common的pom依賴中是否認義spring-boot-maven-plugin插件,若是有則註釋掉(註釋父級的maven-plugin插件,只保留view子模塊的maven-plugin插件)ide
3. 此時打包,仍是失敗;找到總目錄下的root項目,進行install操做,而後再次打包,成功了!spring-boot
參考文章:https://blog.csdn.net/liqi_q/article/details/80557157測試
遇到的坑:idea
1. maven子模塊引入父模塊中的資源文件時,引用失敗,因此項目啓動時出現以下錯誤:spa
Caused by: java.lang.NumberFormatException: For input string: "${jdbc.initialSize}".net
通過測試(註釋掉資源文件中用到的配置),知道是資源文件引入失敗的額問題;插件
解決方法:
後來通過對比、度娘才知道,是父模塊中的poom依賴有問題,少了一項配置 <packaging>pom</packaging>,以下,添加此配置
從新編譯,項目成功運行,問題解決。
1. 順便記錄一下maven經常使用到的命令中 compile、package、install的區別:
clean:清理刪除已有的target目錄;
compile:編譯項目,此時生成的target目錄下只有編譯後的文件,可是是沒有jar包或者war包的;
package:編譯打包,生成的target目錄下有編譯文件和打包生成的jar包或者war包,可是這個打的包是沒有放到本地maven倉庫的,
帶來的影響就是:若是有b項目依賴此jar包,則在打包b項目時,會在本地倉庫中找不到此jar包,致使打包出錯:找不到依賴的jar包;
install:編譯打包,並將打的包放在了maven本地倉庫中,可供別的項目調用;
deploy:包含mvn install操做,而且上傳到私服(遠程倉庫),注意:使用此命令時須要配置poom依賴以及setting.xml文件,具體可參考:https://comeonbabye.iteye.com/blog/1742506
2. idea中直接點擊右側的maven projects,便可操做
3. 使用終端命令時:
首先要進入到項目目錄下,而後再繼續執行命令