解決Maven parent.relativePath帶給我的坑
前言
東西很簡單,只是作為一個記錄給后面的兄弟。周末搞了Linux上使用Maven打包遇到的問題。如果忽略排查思路可直接看解決
問題
The goal you specified requires a project to execute but there is no POM in this directory (/data/my). Please verify you invoked Maven from the correct directory
- 這個錯誤指的是當(dāng)前目錄沒有pom文件,必須要到你項目里面,有pom文件的位置下去執(zhí)行Maven命令才行。比如:mvn clean -X
- 這里的-X是Dubbo調(diào)試具體的錯誤,也可以使用-e
spring-boot-starter-parent-2.2.2.RELEASE.pom and ‘parent.relativePath’ points at wrong local POM @ line 30, column 13
之后就提示:ModelParseException異常,然后提供[Help 1]
https://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 這個網(wǎng)址,進(jìn)去里面一看,說的是Parent父類依賴有問題。
但是,筆者的父模塊的parent依賴是spring boot
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> </parent>
這里后面Spring考慮到了說,如果當(dāng)前項目需要依賴的其他的項目,并且是以上層方式導(dǎo)入的,可以替換為
<dependencies> <!-- SpringBoot的依賴配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.2.2.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies>
這個與上面的parent是一樣的效果。
題外話了,這個是創(chuàng)建pom文件規(guī)范的問題。
因為這個pom文件,里面使用了parent注入spring的jar包,所以呢,就導(dǎo)致了parent.relativePath???筆者很疑惑,為什么呢?
因為這個項目在筆者的IDEA上運行是正常的,不可能說,放到Linux就掛掉了吧,連mvn clean
都報錯。具體錯誤兩個
- 第一個
spring-boot-starter-parent-2.2.2.RELEASE.pom and ‘parent.relativePath’ points at wrong local POM @ line 30, column 13
- 第二個
java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty -> [Help 2]
按照正常人的思維,我肯定是解決掉第一個再去解決第二個,是吧。
但是呢?筆者花了將近4個小時左右,
- 從maven的setting文件,阿里云的鏡像,pom依賴是不是有問題
- 刪掉了parent,重新拉取,還是不行
- jdk和maven是不是不匹配,對比了之后,是匹配的
- 重新拉了個自己的項目,結(jié)果居然爆java.security.InvalidAlgorithmParameterException
所以說排查問題得有思路,正常都是第一個之后再第二個吧,而且英語很重要啊。
看security
明顯的權(quán)限問題,一查下去,發(fā)現(xiàn)是HTTPS
在搞鬼。
看過一篇文章,說的是安全性的問題,有幾種解決方法,但是筆者選擇了快捷有效的。
直接忽略SSL安全檢查,加載mvn package之后。
mvn package -Dmaven.test.skip=true -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
之后運行,OK完成。
解決
繞過前面一大堆思路,看看報錯問題是否存在java.security.InvalidAlgorithmParameterException,先把你maven拉取jar包的權(quán)限弄好再說。
直接在maven命令上加上忽略SSL安全檢查
mvn package -Dmaven.test.skip=true -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
總結(jié)
排查思路很重要啊,而且一些maven的常用命令沒怎么去學(xué)習(xí)。最近有些懈怠了。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JDK17在Windows安裝及環(huán)境變量配置超詳細(xì)的教程
這篇文章主要介紹了JDK17在Windows安裝及環(huán)境變量配置超詳細(xì)的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-11-11java selenium教程環(huán)境搭建基于Maven
本文主要介紹Java selenium 環(huán)境的安裝,這里介紹了基于Maven的環(huán)境搭建,有需要的小伙伴可以參考下2016-08-08java.lang.ArrayIndexOutOfBoundsException數(shù)組越界異常問題解決
這篇文章主要給大家介紹了關(guān)于java.lang.ArrayIndexOutOfBoundsException數(shù)組越界異常問題解決的相關(guān)資料,數(shù)組越界訪問是一個非常嚴(yán)重的問題,文中通過圖文將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用
這篇文章主要介紹了如何用Springboot Admin監(jiān)控你的微服務(wù)應(yīng)用,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下。2021-01-01java的url方式、本地方式獲取json文件內(nèi)容
這篇文章給大家分享了java的url方式、本地方式獲取json文件內(nèi)容的實例代碼,有需要的朋友參考學(xué)習(xí)下。2018-07-07