未能执行目标组织…的解决办法

  

<强>背景:本项目使用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文件,这样自定义的文件就会生效了
  

  

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

未能执行目标组织…的解决办法