如何取消保留或强制删除 ProGuard 中 JPA 实体中的 @javax.persistence.Transient 注释方法?

How to unkeep or force remove @javax.persistence.Transient annotated methods in JPA entities in ProGuard?

我正在将 JPA 实体提取到单独的 Fat/Uber jar 中以供外部系统使用。 ProGuard 通过 com.github.wvengen:proguard-maven-plugin 来压缩所有其他未使用的代码。 我想将所有方法保留在 JPA 实体中,除了由 @javax.persistence.Transient 注释注释的方法。我在 ProGuard 规则中找到了字段修饰符的“!transient”,但方法的 !@javax.persistence.Transient 似乎不起作用:( 我可以通过其他方式以某种方式达到相同的效果吗?

不幸的是,我没有得到关于这个问题的答案,也无法直接通过 ProGuard+MavenPlugin 解决这个问题,但我在 运行 ProGuard 之前通过一个额外的步骤解决了这个问题。在 运行 ProGuard Maven 插件之前,我刚刚在 Maven 阶段使用了 ByteBuddy + Maven 插件,然后它将 optimize/remove 其余未使用的东西,请在此处查看有关 byte-buddy 检测步骤的详细信息: