我有一个带有spring框架的java maven项目,其中有多个相互依赖的模块。
有一个抽象类,编译后该类看起来像这样
import java.io.Serializable;
import javax.persistence.Transient;
import org.springframework.data.domain.Persistable;
public abstract class AppzillonAbstractPersistableEntity<T extends Serializable> implements Persistable<T> {
@Transient
private boolean isNew = true;
public boolean isNew() {
return this.isNew;
}
public void setNew(boolean isNew) {
this.isNew = isNew;
}
}
但是混淆之后,类看起来是这样的
import javax.persistence.Transient;
import org.springframework.data.domain.Persistable;
public abstract class AppzillonAbstractPersistableEntity implements Persistable {
@Transient
private boolean isNew = true;
public boolean isNew() {
return this.isNew;
}
public void setNew(boolean isNew) {
this.isNew = isNew;
}
}
这会导致其他模块在尝试访问此类时出现问题
错误,抽象类AppzillonAbstractPersistableEntity不带任何参数
我正在使用 proguard 进行混淆,我已将 proguard-maven-plugin 添加到模块级别的 pom 文件中
我已经尝试了大部分规则来保持类文件原样,但无论如何它最终都会如上面提到的那样。
目前我正在混淆模块,所以如果有其他模块使用的类、方法或变量,我只是保持它到目前为止工作正常,但对于上面提到的一些 spring 注释、枚举和抽象类来说失败了。
请帮助我了解混淆的方法和配置,
是否有任何规则可以在混淆时跳过整个课程
还有其他方法可以使用 spring 框架混淆 java maven 项目吗
这看起来不像是一个混淆问题。你的实例是什么样的?