针对Failed to execute goal org.apache.maven.pluginsmaven-compiler-plugin3.1的解决方案

2023-10-27

背景:本项目使用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}这个变量是在settings.xml中配置的,如下:

<profile>
            <id>custom-compiler</id>
            <properties>
                <JAVA8_HOME>C:Program Files (x86)Javajdk1.8.0_73</JAVA8_HOME>
            </properties>
</profile>

当然这里应该需要激活,所以settings.xml文件还应该有如下配置:

<activeProfiles>
        <activeProfile>custom-compiler</activeProfile>
</activeProfiles>

从pom文件中CTRL点击变量JAVA8_HOME能跳到settings.xml中找到它的定义处,按理来说应该是能找到这个变量,出现上述问题并不是因为找不到这个变量。我将pom文件中的JAVA8_HOME这个变量直接用实际的路径替换,即替换为

C:Program Files (x86)Javajdk1.8.0_73injavac

发现编译通过,这就奇怪了。

揭晓原因:

maven其实是有一个默认的仓库.m2仓库和默认的settings.xml配置文件,我们在这个默认的settings.xml文件中也添加了一个JAVA8_HOME的变量后,编译就通过了,这就说明,maven编译的时候找的不是我在idea中配置的我自定义的settings.xml,而是先找的它默认的那个。因为里面没有,所以之前找不到JAVA8_HOME,导致编译失败、

总结:maven编译的时候应该是先找的默认的settings.xml,如果找不到,才会去找我在idea的settings选项下配置的“User settings file”中配置的settings.xml文件。

解决办法:删掉maven默认的去找的那个settings.xml文件,这样自定义的文件就会生效了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对Failed to execute goal org.apache.maven.pluginsmaven-compiler-plugin3.1的解决方案 的相关文章

随机推荐

  • 人脸识别代码_七个步骤快速实现人脸识别(超级简单 代码全!!!)

    作者 柒末雪 一 项目结构如下 二 程序主流程 主流程代码 通过sqlite3保存人脸数据和信息 然后通过遍历数据库与之对比找出识别者信息 若识别不到 则会提示添加人脸信息至数据库 导入数据库驱动 import sqlite3 from t
  • 【攻防世界刷题】Misc-2-心仪的公司

    攻防世界刷题 Misc 2 心仪的公司 攻防世界刷题 Misc 2 心仪的公司 知识点 题解1 题解2 答案 攻防世界刷题 Misc 2 心仪的公司 出处 Tags 攻防世界 世安杯 流量分析 字符串查找 知识点 1 wireshark字符
  • VUE之常用复用方法封装

    步骤 将方法封装进js文件 const utilFiltra 过滤合同名称为空 jexcel使用 filtraName function arr for let i 0 i lt arr length i if arr i material
  • Linux驱动开发—最详细应用程序调用驱动程序解析

    Linux下应用程序调用驱动程序流程 Linux下进行驱动开发 完全将驱动程序与应用程序隔开 中间通过C标准库函数以及系统调用完成驱动层和应用层的数据交换 驱动加载成功以后会在 dev 目录下生成一个相应的文件 应用程序通过对 dev xx
  • PTA 森森旅游 (30 分)

    6 11 3 1 2 3 5 1 3 8 4 2 4 4 6 3 1 8 6 1 3 10 8 2 3 2 8 3 4 5 3 3 5 10 7 3 3 2 3 4 6 10 12 5 6 10 6 3 4 5 2 5 100 1 2 2
  • LevelDb

    LevelDb 之一 初识LevelDb 说起LevelDb也许您不清楚 但是如果作为IT工程师 不知道下面两位大神级别的工程师 那您的领导估计会Hold不住了 Jeff Dean和Sanjay Ghemawat 这两位是Google公司重
  • Windows 10安装错误:0x80300024无法安装到该盘且无法新建分区 & 格式化错误及解决方案

    本文由DUT斑鸠实验室出品 今日在给旧的笔记本加装固态并重装系统时出现的问题 图片来自百度贴吧 链接 百度贴吧无法安装Windows问题 解决方案 将需要安装的盘符启动级别在Bios中调整至第一位置
  • 2023华为od机试 Java【金字塔形收入】

    题目 什么是金字塔形的收入 人员的结构就像金字塔一样 当一个下级赚 100 元 他就得给上级交 15 元 我们现在已知每个级别的收入 求出最顶级的人的收入 示例1 输入 1 0 223 2 0 323 3 2 1203 输出 0 105 示
  • 建立二叉树和输出

    span style font size 18px include span
  • Springboot整合微信支付 --- 付款码支付

    场景介绍 开发指引 接入准备 下面是我们必须带入的几个值 需要自己去 微信支付官网 获取 所需依赖
  • 生成服从正态分布的随机数

    1 matlab中normrnd函数 功能 生成服从正态分布的随机数 语法 R normrnd MU SIGMA R normrnd MU SIGMA m R normrnd MU SIGMA m n 说 明 R normrnd MU SI
  • axios解决开发环境跨域问题

    跨域是因为协议域名端口其中一个的不同而产生的的报错 这是浏览器发出的 有些跨域这个时候是已经成功请求了 但是被浏览器拦截了 前端可以配置代理服务器来解决跨域 这个是因为服务器与服务器之间不存在跨域 配置的代理服务器又与本地的协议端口域名都一
  • VLC播放器插件的使用

    div class FlashPlayer style border 0px solid green div
  • golang gen根据数据库生成结构体和数据库操作代码

    package main import fmt gorm io driver mysql gorm io gen gorm io gorm strings testing 此处填入自己对应的ip地址 端口 数据库名称 const Mysql
  • 1.3 手写数字识别任务

    文章目录 横纵式 教学法 一 加载类库 二 数据处理 飞桨API的使用方法 三 模型设计 四 训练配置 五 训练过程 六 模型测试 横纵式 教学法 在本教程中 我们采用了专门为读者设计的创新性的 横纵式 教学法进行深度学习建模介绍 如 图4
  • collection和collections区别

    区别 Collection它是一个集合的接口 它提供了对集合对象进行基本操作的通用接口方法 Collection接口在java类库当中有很多具体的实现 Collection接口的意义就是为各种具体的集合提供最大化的统一操作方式 主要实现的C
  • 软能力那点事,你知多少

    目录 一 软能力是什么 二 软能力 程序猿生存指南 A 沟通能力 B 学习能力 C 时间管理 D 分解能力 E 总结改进 三 程序猿成长路线 1 架构师 2 项目经理 3 产品经理 四 小结 在我们日常工作中 常常会听到软能力这一个词汇 尤
  • “wget: 无法解析主机地址”的解决方法

    问题 root iZ2zefny2a19ms6azli2pwZ wget https download redis io releases redis 5 0 10 tar gz 2020 11 01 14 30 12 https down
  • Jmeter 集合点

    概念 对于性能测试可以理解为多用户并发 但是真正的并发是不存在的 为了更真实的实现并发的概念 我们可以在需要的地方设置集合点 所有虚拟用户都互相之间等一等 然后一起访问 Jmeter集合点是通过添加定时器 Synchronizing tim
  • 针对Failed to execute goal org.apache.maven.pluginsmaven-compiler-plugin3.1的解决方案

    背景 本项目使用JDK1 8 编译maven工程的时候出现如下错误 Failed to execute goal org apache maven plugins maven compiler plugin 3 1 pom中如下配置mave