当前位置:  开发笔记 > 编程语言 > 正文

Maven shade插件不排除清单签名文件

如何解决《Mavenshade插件不排除清单签名文件》经验,为你挑选了1个好方法。

我正在使用maven shade插件为我的项目生成一个合并jar.jar是按预期生成的,当我尝试使用jar并运行它时,我得到了一个

java.lang.SecurityException:Manifest主要属性错误的签名文件摘要无效.

我搜索了上面的错误消息,许多人建议从META-INF目录中排除清单签名.因此,我已经包含了从目录中排除这些文件的步骤[我看到两个文件的名称JARSIGN_.RSAJARSIGN_.SF],但由于一些奇怪的原因,maven shade插件无法从META-INF目录中排除这些文件.谁能解释一下我可能做错了什么?我的pom.xml在下面,我用来生成jar的命令是:

mvn clean package shade:shade

的pom.xml

    
        4.0.0

        com.abc.xyz
        myjar
        1.0-SNAPSHOT
        jar
        http://maven.apache.org

        
            
        


        
            
                com.google.code.gson
                gson
                2.3.1
            
            
                com.google.guava
                guava
                18.0
            
        
        

        
            
        
        
                
                    
                        org.apache.maven.plugins
                        maven-compiler-plugin
                        2.3.2
                        
                            1.8
                            1.8
                            UTF-8
                        
                    
                    
                    
                        org.apache.maven.plugins
                        maven-shade-plugin
                        2.4.2
                        
                            
                            
                                package
                                
                                    shade
                                
                                
                                    
                                        
                                            *:*

                                            
                                                META-INF/*.SF
                                                META-INF/*.DSA
                                                META-INF/*.RSA
                                            
                                        
                                                              
                                    true
                                    
                                        
                                            com.google.guava:guava
                                            com.google.code.gson:gson
                                        
                                    
                                    
                                        
                                        
                                            
                                                com.abc.xyz.HelloWorld
                                            
                                        
                                    
                                
                            
                        
                    
                
        
    

Ralf.. 6

也许这个插件的配置语法已经改变了,但是这对我来说在过去使用着色器插件的1.5版本时:


    org.apache.maven.plugins
    maven-shade-plugin
    1.5
    
        
            
                META-INF/JARSIGN_.SF
            
        
    
    
        
            package
            
                shade
            
        
    

我没有尝试使用通配符.但是查看文档,以下内容应该排除所有.SF文件:

.SF

有关其他示例,请参阅此主题



1> Ralf..:

也许这个插件的配置语法已经改变了,但是这对我来说在过去使用着色器插件的1.5版本时:


    org.apache.maven.plugins
    maven-shade-plugin
    1.5
    
        
            
                META-INF/JARSIGN_.SF
            
        
    
    
        
            package
            
                shade
            
        
    

我没有尝试使用通配符.但是查看文档,以下内容应该排除所有.SF文件:

.SF

有关其他示例,请参阅此主题

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有