Proguard – не запутывайте классы данных Kotlin

В моем проекте я использую AutoValue для своих старых классов моделей. Я начал использовать Kotlin, и я хочу использовать Data Classes вместо AutoValue. Я хочу отключить обфускацию для всех классов Data в моем слое Data, но для предотвращения запутывания других классов в пакете.

Есть ли способ сделать это?

Я бы ожидал, что в моем файле Proguard будет что-то вроде этого:

-keepclassmembers data class example.data_layer.** { *; } 

Чтобы устранить проблему, я переместил классы моделей в модельный пакет и добавил новое правило ProGuard для пакета.

 -keep class com.company.myfeature.model.** { *; } 

Другим решением было бы использовать аннотацию @Keep из библиотеки поддержки, чтобы отключить обфускацию для класса:

 @Keep data class MyRequestBody(val value: String) 

Использование @Keep может вызвать проблемы, потому что легко забыть добавить его для новых классов.

Надеюсь, в будущем будет существовать способ с одним правилом ProGuard отключить обфускацию для всех классов данных в пакете без необходимости иметь подпакет для классов модели .