"Invalid signature file" when attempting to run a .jar
For those who got this error when trying to create a shaded uber-jar with maven-shade-plugin
, the solution is to exclude manifest signature files by adding the following lines to the plugin configuration:
<configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <!-- Additional configuration. --></configuration>
For those using gradle and trying to create and use a fat jar, the following syntax might help.
jar { doFirst { from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA' }
Please use the following command
zip -d yourjar.jar 'META-INF/*.SF' 'META-INF/*.RSA' 'META-INF/*.DSA'