2013-08-13 6 views
1

Je suis en train d'utiliser Proguard pour réduire la taille du pot.Proguard avec Maven

I configuré Proguard dans Maven pom.xml. Il n'a pas réussi à trouver tous les fichiers jar de dépendances incorporés. Il peut lire et analyser tous les pots de dépendance qui est référencé dans le module courant, mais pour les dépendances qui sont intégrés dans les autres modules, il n'a pas à le trouver.

Par exemple, mon module courant est Modulea et dépend d'un autre module moduleB. Et le module B a un module de dépendance C. Il peut trouver toutes les classes qui se trouvent directement dans le moduleB, mais il n'a pas réussi à analyser toutes les classes qui se trouvent dans le moduleC. Ma configuration pour proguard est la suivante:

<plugin> 
      <!--groupId>com.pyx4me</groupId--> 
      <groupId>com.github.wvengen</groupId> 
      <artifactId>proguard-maven-plugin</artifactId> 
      <executions> 
       <execution> 
       <id>proguard</id> 
       <phase>package</phase> 
       <goals> 
        <goal>proguard</goal> 
       </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <injar>MyInput-${project.version}.jar</injar> 
       <outjar>MyInput-Processed-${project.version}.jar</outjar> 
       <options> 
       <option>-keep public class * { *; }</option> 
       <option>-ignorewarnings</option> 
       </options> 
       <libs> 
       <!--lib>${java.bootstrap.classes}</lib> 
       <lib>${java.cryptographic.extension.classes}</lib> 
       <lib>${java.secure.socket.extension.classes}</lib--> 
       </libs> 
      </configuration> 
      <dependencies> 
       <dependency> 
       <groupId>net.sf.proguard</groupId> 
       <artifactId>proguard-base</artifactId> 
       <version>4.10</version> 
       <scope>runtime</scope> 
       </dependency> 
      </dependencies> 
     </plugin> 
+0

connexes? http://stackoverflow.com/questions/16949612/proguard-obfuscation-of-package-private-members-shared-across-maven-modules?rq=1 –

Répondre

1

J'ai eu un problème similaire, mais il a pu trouver les références mentionnées dans la section dépendances de configuration du plugin. Cependant, si j'essayais d'utiliser proguard-base-4.10, le proguard-maven-plugin (avec com.pyx4me groupId) utilisait toujours proguard-4.3.jar (vous pouvez le voir dans la sortie maven de la console) On dirait que le plugin fonctionne uniquement avec un artefact "proguard", pas un "proguard-base".

Je configuré la section dépendances pour ressembler à:

<dependency> 
    <groupId>net.sf.proguard</groupId> 
    <artifactId>proguard</artifactId> 
    <version>4.10</version> 
    <scope>runtime</scope> 
</dependency> 

mais celui-ci ne sont pas disponibles dans le central maven repo (la dernière version est 4.4). Ce que j'ai fait était de télécharger manuellement le proguard-4.10 de proguard download section et installer le proguard.jar dans le dépôt maven local sous la version 4.10 - et maintenant tout fonctionne bien.

+0

merci beaucoup c'est ce qui a fonctionné pour moi – Venkat

Questions connexes