Estoy intentando que Maven trabaje con ProGuard.Problemas de Maven, Proguard y montaje
Lo que quiero lograr es la siguiente:
Run ProGuard sobre mis archivos de origen y producir clases ofuscado
Crear un archivo de manifiesto que hace referencia a la clase principal para que pueda ejecutarlo como jar
Desempaquete todos los jar de biblioteca asociados y cree un jar enorme que los contenga a todos. Este archivo solo debe contactarse con los archivos .class y .xml.
Combínelos en archivos .zip y tar.gz que incluyen varios archivos README.txt y más.
Hasta ahora tengo algo como esto:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<manifest>
<mainClass>com.class.path.MainClass</mainClass>
</manifest>
</archive>
<includes>
<include>**/*.class</include>
<include>**/*.xml</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>com.pyx4me</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<configuration>
<options>
<option>-allowaccessmodification</option>
</options>
<obfuscate>true</obfuscate>
<injar>classes</injar>
<outjar>${project.build.finalName}.jar</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<proguardInclude>src/main/assembly/proguard.conf</proguardInclude>
<libs>
lib/rt.jar</lib>
</libs>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
<configuration>
<descriptors>
<descriptor>
src/main/assembly/bin.xml
</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
Pero estoy teniendo ninguna alegría. ¿Alguien puede darme algunos consejos vagos sobre esto?
Gracias de antemano, Matt
@starblue Maven no tiene cualquier concepto '[assemblies]'. Sin embargo, '[assembly]' es muy válido. Por lo tanto, deje de comportarse como las etiquetas para dominios únicos, excluyendo todo lo que no coincida con su visión de su uso. Las etiquetas son para establecer, agregar más restricciones. No me prohíba usar una etiqueta que se aplique a Maven también. Esto es malditamente molesto –
http://maven.apache.org/plugins/maven-assembly-plugin/: Este complemento genera "ensambles". – starblue