proguard icon indicating copy to clipboard operation
proguard copied to clipboard

Proguard 7.0.0 processing multiple applications at once

Open fross opened this issue 5 years ago • 1 comments

The easiest way is to specify your input jars (and/or wars, ears, zips, and directories) and a single output directory. ProGuard will then reconstruct the input in this directory, using the original jar names. For example, showing just the input and output options:

-injars application1.jar -injars application2.jar -injars application3.jar -outjars processed_applications

After processing, the directory processed_applications will contain processed versions of application jars, with their original names.

  • After processing, processed_applications contains processed class files, all combined, and no jars
  • Note: duplicate definition of resource file [META-INF/MANIFEST.MF] is output because of the combining process

fross avatar Jul 26 '20 14:07 fross

I can reproduce the issue, and I imagine it is a regression problem that needs to be investigated. For now you can work around it by specifying the output jars explicitly. ProGuard can only represent a single copy of each file, so you can filter out the manifest files, or with a small trick, temporarily rename them in the filter so they don't clash:

-injars  input1.jar (META-INF/MANIFEST.MF->META-INF/MANIFEST.MF1,**)
-outjars output1.jar(META-INF/MANIFEST.MF1->META-INF/MANIFEST.MF,**)

-injars  input2.jar (META-INF/MANIFEST.MF->META-INF/MANIFEST.MF2,**)
-outjars output2.jar(META-INF/MANIFEST.MF2->META-INF/MANIFEST.MF,**)

EricLafortune avatar Aug 24 '20 21:08 EricLafortune