Reputation: 43214
When I export android project with proguard.cfg, all referenced .jar files are obfuscated as well. How can I exclude some of that .jars from obfuscation?
Upvotes: 26
Views: 26210
Reputation: 2253
Using proguard maven plugin I do it like that
<inclusion>
<groupId>foo.bar</groupId>
<artifactId>foo-bar</artifactId>
<library>true</library>
<filter>!META-INF/**</filter>
</inclusion>
The
<library>true</library>
lead to the external jar merged into the final jar after the obfuscation. But this might lead to the Manifest being overwritten. I haven't figured out yet how to avoid that the best way.
Upvotes: 1
Reputation: 45648
If you don't want to edit the Ant script, you can add -keep options to proguard.cfg for the classes in those external jars. For instance:
-keep class othercode.** { *; }
Or with a regular expression containing a negator:
-keep class !mycode.** { *; }
The standard Ant script will still merge all referenced jars in the single output jar though.
Upvotes: 25
Reputation: 6244
In your config file, set up your jars as library jars instead of input jars. This leaves them untouched.
-libjars <path/to/jars>
Upvotes: 5