Invalid signature file digest for Manifest main attributes

maven项目使用加密工具类引入了一些依赖后,打jar包并执行jar包出现Invalid signature file digest for Manifest main attributes的错误

    • 解决方案1:(手动删除文件)
    • 方案二:maven中使用打包插件排除(推荐)

网上找的资料说是由于有些依赖中重复引用了某个包,以至于打包之后的META-INF的目录下多出了一些*.SF,.DSA,.RSA文件所致,可手动删除这些问题后,再执行jar包

通过java指令执行jar包,提示Invalid signature file digest for Manifest main attributesInvalid signature file digest for Manifest main attributes_第1张图片

解决方案1:(手动删除文件)

Invalid signature file digest for Manifest main attributes_第2张图片
通过压缩软件查看程序生成的jar包,可以看到META文件下有.SF,.DSA结尾的文件,手动删除后,再查看该目录下MANIFEST.MF文件中是否有指定要运行的main方法路径,不存在则手动添加,修改后保存,即可正常执行jar包

方案二:maven中使用打包插件排除(推荐)

Invalid signature file digest for Manifest main attributes_第3张图片


			org.apache.maven.plugins
			maven-shade-plugin
			3.2.1
			
				
					package
					
						shade
					
					
						
							
								com.ctid.kms.report.transform.TransformMain
                            
                        
						
							
								*:*
								
									module-info.class
									META-INF/*.SF
									META-INF/*.DSA
									META-INF/*.RSA
								
							
						
					
				
			

低版本的maven-shade-plugin在配置filter artifact时会报 No artifact matching filter 错误,不能排除指定的文件

具体原因不知,或许是低版本语法不同,有知道的可以告知一下,我这里使用3.2.1 版本,打jar包后,查看程序META-INF目录已经不再生成 *.SF等文件,jar包也可正常运行

你可能感兴趣的:(java,maven,开发语言)