<强>背景:本项目使用JDK1.8 强>
编译maven工程的时候出现如下错误:
未能执行目标org.apache.maven.plugins: maven-compiler-plugin: 3.1 >之前pom中如下配置maven插件,配置中声明使用JDK1.8:
& lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-compiler-plugin & lt; version> 3.1 & lt;/version> & lt; configuration> & lt; verbose> true & lt; fork> true & lt; executable> $ {JAVA8_HOME}/bin/javac & lt;/configuration> & lt;/plugin> >之前这里的$ {JAVA8_HOME}这个变量是在settings.xml中配置的,如下:
& lt; profile> & lt; id> custom-compiler & lt; properties> & lt; JAVA8_HOME> C: \ Program Files \ Java \ jdk1.8.0_73< (x86);/JAVA8_HOME> & lt;/properties> & lt;/profile> >之前当然这里应该需要激活,所以设置。xml文件还应该有如下配置:
& lt; activeProfiles> & lt; activeProfile> custom-compiler & lt;/activeProfiles>>之前从pom文件中CTRL点击变量JAVA8_HOME能跳到设置。xml中找到它的定义处,按理来说应该是能找到这个变量,出现上述问题并不是因为找不到这个变量。我将pom文件中的JAVA8_HOME这个变量直接用实际的路径替换,即替换为
C:\Program Files (x86)\Java\ jdk1.8.0_73 \ bin \ javac发现编译通过,这就奇怪了。
<强>揭晓原因:强>
maven其实是有一个默认的仓库.m2仓库和默认的settings.xml配置文件,我们在这个默认的settings.xml文件中也添加了一个JAVA8_HOME的变量后,编译就通过了,这就说明,maven编译的时候找的不是我在想法中配置的我自定义的settings.xml,而是先找的它默认的那个。因为里面没有,所以之前找不到JAVA8_HOME,导致编译失败,
<强>总结:强> maven编译的时候应该是先找的默认的设置。xml,如果找不到,才会去找我在想法的设置选项下配置的“用户设置文件”中配置的settings.xml文件。
<>强解决办法:>强删掉maven默认的去找的那个设置。xml文件,这样自定义的文件就会生效了
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
未能执行目标组织…的解决办法