java - Proguard - How to create multiple output jars with shared input jars -


so example want each output jar include both injars above it:

# windows client -injars common.jar -injars windowsclient.jar -outjar windowsclient.jar  # mac client -injars common.jar -injars macclient.jar -outjar macclient.jar  # windows server  -injars common.jar -injars windowsserver.jar -outjar windowsserver.jar  # mac server  -injars common.jar -injars macserver.jar -outjar macserver.jar 

so works , includes code specific each jar. problem tons of "duplication of definition of program class" warnings proguard. assume it's because of duplicated -injars common.jar, don't know how resolve that. if remove -injars common.jar each grouping error having use filter.

is there way example say:

# windows server (3 step) -removejars macclient.jar -injars ... -outjars windowsserver.jar 

proguard's intention ignore duplicate input classes (apart printing out notes) , write each processed class single jar. create separate output jar commons.jar , merge other jars later on.

your trick happens work, inefficiently reading same commons.jar multiple times. can suppress warnings -dontnote.

notes:

  • the names of input jars , output jars must different.
  • you may want disable class merging (-optimizations !class/merging/*), keep classes migrating between jars.

Comments