Failed to execute goal org...的解決辦法
背景:本項(xiàng)目使用JDK1.8
編譯maven工程的時(shí)候出現(xiàn)如下錯(cuò)誤:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1
pom中如下配置maven插件,配置中聲明使用JDK1.8:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA8_HOME}/bin/javac</executable>
</configuration>
</plugin>
這里的${JAVA8_HOME}這個(gè)變量是在settings.xml中配置的,如下:
<profile>
<id>custom-compiler</id>
<properties>
<JAVA8_HOME>C:\Program Files (x86)\Java\jdk1.8.0_73</JAVA8_HOME>
</properties>
</profile>
當(dāng)然這里應(yīng)該需要激活,所以settings.xml文件還應(yīng)該有如下配置:
<activeProfiles>
<activeProfile>custom-compiler</activeProfile>
</activeProfiles>
從pom文件中CTRL點(diǎn)擊變量JAVA8_HOME能跳到settings.xml中找到它的定義處,按理來(lái)說(shuō)應(yīng)該是能找到這個(gè)變量,出現(xiàn)上述問(wèn)題并不是因?yàn)檎也坏竭@個(gè)變量。我將pom文件中的JAVA8_HOME這個(gè)變量直接用實(shí)際的路徑替換,即替換為
C:\Program Files (x86)\Java\jdk1.8.0_73\bin\javac
發(fā)現(xiàn)編譯通過(guò),這就奇怪了。
揭曉原因:
maven其實(shí)是有一個(gè)默認(rèn)的倉(cāng)庫(kù).m2倉(cāng)庫(kù)和默認(rèn)的settings.xml配置文件,我們?cè)谶@個(gè)默認(rèn)的settings.xml文件中也添加了一個(gè)JAVA8_HOME的變量后,編譯就通過(guò)了,這就說(shuō)明,maven編譯的時(shí)候找的不是我在idea中配置的我自定義的settings.xml,而是先找的它默認(rèn)的那個(gè)。因?yàn)槔锩鏇](méi)有,所以之前找不到JAVA8_HOME,導(dǎo)致編譯失敗、
總結(jié):maven編譯的時(shí)候應(yīng)該是先找的默認(rèn)的settings.xml,如果找不到,才會(huì)去找我在idea的settings選項(xiàng)下配置的“User settings file”中配置的settings.xml文件。
解決辦法:刪掉maven默認(rèn)的去找的那個(gè)settings.xml文件,這樣自定義的文件就會(huì)生效了
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
springboot中使用undertow踩坑記(最新推薦)
這篇文章主要介紹了springboot中使用undertow踩坑記,springboot內(nèi)置類(lèi)web中間件,將web服務(wù)器管理權(quán)交給了容器,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
springboot集成flyway自動(dòng)創(chuàng)表的詳細(xì)配置
Flayway是一款數(shù)據(jù)庫(kù)版本控制管理工具,支持?jǐn)?shù)據(jù)庫(kù)版本自動(dòng)升級(jí),Migrations可以寫(xiě)成sql腳本,也可以寫(xiě)在java代碼里;本文通過(guò)實(shí)例代碼給大家介紹springboot集成flyway自動(dòng)創(chuàng)表的詳細(xì)過(guò)程,感興趣的朋友一起看看吧2021-06-06
Java中的HashSet詳解和使用示例_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
HashSet 是一個(gè)沒(méi)有重復(fù)元素的集合。接下來(lái)通過(guò)實(shí)例代碼給大家介紹java中的hashset相關(guān)知識(shí),感興趣的朋友一起看看吧2017-05-05
RocketMQ?NameServer架構(gòu)設(shè)計(jì)啟動(dòng)流程
這篇文章主要為大家介紹了RocketMQ?NameServer架構(gòu)設(shè)計(jì)啟動(dòng)流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
JAVA超級(jí)簡(jiǎn)單的爬蟲(chóng)實(shí)例講解
下面小編就為大家?guī)?lái)一篇JAVA超級(jí)簡(jiǎn)單的爬蟲(chóng)實(shí)例講解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
解讀String字符串導(dǎo)致的JVM內(nèi)存泄漏問(wèn)題
這篇文章主要介紹了解讀String字符串導(dǎo)致的JVM內(nèi)存泄漏問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07

