<的解决办法
背景:本项⽬使⽤JDK1.8
编译maven⼯程的时候出现如下错误:
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}这个变量是在l中配置的,如下:
<profile>
<id>custom-compiler</id>
<properties>
<JAVA8_HOME>C:\Program Files (x86)\Java\jdk1.8.0_73</JAVA8_HOME>
</properties>
</profile>
当然这⾥应该需要激活,所以l⽂件还应该有如下配置:
<activeProfiles>
<activeProfile>custom-compiler</activeProfile>
</activeProfiles>
从pom⽂件中CTRL点击变量JAVA8_HOME能跳到l中到它的定义处,按理来说应该是能到这个变量,出现上述问题并不是因为不到这个变量。我将pom⽂件中的JAVA8_HOME这个变量直接⽤实际的路径替换,即替换为
C:\Program Files (x86)\Java\jdk1.8.0_73\bin\javac
发现编译通过,这就奇怪了。
揭晓原因:
maven其实是有⼀个默认的仓库.m2仓库和默认的l配置⽂件,我们在这个默认的l⽂件中也添加了⼀个JAVA8_HOME的变量后,编译就通过了,这就说明,maven编译的时候的不是
我在idea中配置的我⾃定义的l,⽽是先的它默认的那个。因为⾥⾯没有,所以之前不到JAVA8_HOME,导致编译失败、
springboot其实就是spring
总结:maven编译的时候应该是先的默认的l,如果不到,才会去我在idea的settings选项下配置的“User settings file”中配置的l⽂件。
解决办法:删掉maven默认的去的那个l⽂件,这样⾃定义的⽂件就会⽣效了
感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。