Vert.x @ProxyGen 使用IDEA构建时报错

问题描述

在使用vertx-codegen的@ProxyGen注解自动生成代码的时候,发现IDEA在编译的时候报错:
java: Could not generate element for com.kaopusong.vertx.service.DeliveryAsyncService: null
在这里插入图片描述


原因分析:

首先可以确定的是,这肯定是Vertx提供的注释编译器有缺陷,但是当我使用不同版本的IDEA时,发现在2020.2之前版本的IDEA编译正常,2020.2 之后版本的IDEA编译就会报错。
经过一番搜索后发现,从 2020.3 开始,IntelliJ 团队对注释处理器的增量编译进行了改进。那既然无法改变Vertx的注释编译器,直到Vertx修复此问题之前,我们可以通过改变IDEA,来变相达到我们的目的:使编译正常通过


解决方案:

解决的方式有两种:

  • 1.将构建操作委托给Maven,如图所示,在箭头所指方向勾选,将构建/运行操作委托给Maven,但要注意,该方法虽然有效,但是构建的速度会较慢
    将构建操作委托给Maven
  • 2.通过设置IDEA的虚拟机参数,来强制IDEA使用2020.2之前版本的注释处理器,在默认情况下,此参数为True
    -Djps.track.ap.dependencies=false
    
    设置IDEA的虚拟机参数以上两种方式都可以使用,但是使用方法1的编译速度会比IDEA自身的编译速度慢,所以建议使用方法2
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值