什么鬼,ApiHug 插件被封了!!

图片

被封

Dam...........刚准备上1.9k下载,几日前被封,还好老的安装可继续玩耍。

最终通过几轮邮件, 最终整改点信息,目前又解封了!(好事是交流直截了当说明原因, 照着改就OK了)。

升级

这次小小升级,简单升级了生成模版,给proto 模块build 加了点额外说明,这个也更新如FAQ, 说明下 JAVA 编译版本冲突安排:

分析

最近在升级java 编译版本到 21 时候遇到一个诡异的事情, 项目都可以编译,但是 proto 更新没有刷新, 开始怀疑缓存, 所以都删除了,再实验还是不行, 然后怀疑插件问题, 退版本, 还是不行,然后插件加debug 信息, 本地测验十几轮,还是不行, 最后定位问题在我们 wire 插件做 post compile 时候,没有找到目标class(proto 编译后class), 但是他明明是前置编译而且看到在哪里, 没有办法手写个 URL Classloader, 这会错误精确打出来了; Class 版本过高,JVM 版本过低,无法识别。

最后是进一步捋:

  1. 本地环境17

  2. 项目环境是 21

所以项目预编译了proto 到 21 class, 然后本地环境也是编译环境启动gradle, 当然扫不到 21 class - 反射失败默认没有抛出。

图片

FAQ

最后顺道也把这个小故事放到 FAQ 上去了。

JVM version compatibility is critical for successful proto module compilation.

Two JVM versions are involved:

  1. The toolchain version defined in the project’s gradle/java.gradle file.

  2. The JVM version of the build environment (used by Gradle at runtime).

A version mismatch between these can cause the protobuf wire compiler to fail silently.

To prevent issues:

  • Ensure the proto module’s target compilation version is <= build environment JVM version.

Java version:

Project

Compile(gradle)

Proto Module

21

21

Default or <=21

21

17

<=17

17

21

Default or <=21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ApiHug

God Bless U

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值