Hi, I have built an intelliJ plugin - say in Module A. I have my core code in Module B. Module B is a dependency of Module A. Now I just want to obfuscate Module B as it contains my business level code. I know I could just keep classes in Module B that are being used in Module A but that will make obfuscation useless for me as classes in Module B are being heavily used.
Is there a way to obfuscate Module A depending on mapping of Module B so that my code from Module A runs.
First of all, thanks for posting this question and welcome to our community!
If I understand correctly, Module B needs to be obfuscated but at the moment, if you run ProGuard on Module A and subsequently on Module B, too much gets obfuscated resulting in runtime issues? In case you still want to name obfuscate the classes, methods and fields in module B, I would recommend you to run ProGuard on Module B separately before you make it a dependency of Module A. You can then process Module A with ProGuard after you configured keep rules that will keep the - now obfuscated - class, method and fields names of Module B.
@james Thanks, this was the issue for me. I am facing another issue now though, when I add library jars to the config, the proguard task fails as it runs out of memory. Is there any documentation available to increase proguard task heap?
Also is there a simpler way of adding all runtime library jars to the config file?