使用 Spring Framework 混淆 Java Maven 项目

问题描述 投票:0回答:1

我有一个带有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 项目吗

java spring maven obfuscation
1个回答
-1
投票

这看起来不像是一个混淆问题。你的实例是什么样的?

© www.soinside.com 2019 - 2024. All rights reserved.