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

问题描述

我正在将 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 插件,然后它会优化/删除其余未使用的东西,请在此处查看有关字节伙伴检测步骤的详细信息:byte-buddy remove/strip methods

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...