栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot服务引入外部jar包,maven打包部署到linux服务器报找不到jar包中的类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot服务引入外部jar包,maven打包部署到linux服务器报找不到jar包中的类

1、问题描述

最近开发了一个springboot程序,需要依赖第三方jar包,这个jar包无法直接通过pom远程仓库下载,需要从自己本地引入,于是配置pom文件如下:将本地jar包引入工程,systemPath为jar所在的本地路径

        
            com.hikvision.js
            masmgc.sdk.mms
            1.0.3-SNAPSHOT
            system
            ${project.basedir}/lib/masmgc.sdk.mms-1.0.3-SNAPSHOT.jar
        
  
    bin
      
      
        zip
      
  
      
      
          
              
            false  
            lib  
            false  
          
      
  
      
          
          
            ${project.basedir}
            /
              
                README*  
                LICENSE*  
                NOTICE*  
              
          
          
          
        
            ${project.basedir}/src/main/resources/
            config
            
                **/mybatistemp/**
            
        
        
            ${project.basedir}/src/main/resources/temp
            temp
        
        
		  
            ${project.basedir}/src/main/bin/
            bin
              
                *.bat  
                *.sh  
              
        

        
        
            ${project.basedir}/lib/
            lib
        

          
          
            ${project.build.directory}  
              
              
                deployalarmsm-1.0.0004.jar
              
        
      
  
maven-assembly-plugin的打包配置文件package.xml中添加配置,把本地依赖的jar打包到了lib目录下,但服务器上运行还是找不到jar包中的类。
2.问题排查 波折

网上搜索答案,说原因是:

如果项目依赖了pom中定义的dependency之外的外部jar包,maven-jar-plugin默认是不会把这

些额外jar包的依赖信息放在jar文件的MANIFEST.MF文件中的,这会导致jar包运行时出现找不到指定类的错误。

要包jar包添加到配置中,添加后,打包后查看MANIFEST.MF文件,类路径下已经有了本地依赖的这个jar包,但运行还是报找不到类。。。。。。

 
                org.apache.maven.plugins
                maven-jar-plugin
                
                
                    
                    
                        
                        false
                        
                        
                            
                            true
                            
                            lib/
                            
                            com.hikvision.js.deployalarmsm.DeployalarmsmApplication
                        
                        
                            lib/masmgc.sdk.mms-1.0.3-SNAPSHOT.jar config/
                        
                    
                    
                    
                        ${project.basedir}/src/main/resources/
                        *.properties
                        *.xml
                    
                
            

重新maven打包,发现有个warning:

[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.hikvision.js.deployalarmsm:deployalarmsm:jar:1.0.0004
[WARNING] 'dependencies.dependency.systemPath' for com.hikvision.js:masmgc.sdk.mms:jar should not point at files within the project directory, ${project.basedir}/lib/masmgc.sdk.mms-1.0.3-SNAPSHOT.jar will be unresolvable by dependent projects @ line 229, column 25
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.

显然提示的是通过system Scope方式引入jar包不建议使用了,甚至高版本的maven已经不支持了,于是需要把第三方jar包发布到maven私服,在通过正常的maven依赖进来;

        
        
            com.hikvision.js
            masmgc.sdk.mms
            1.0.3-SNAPSHOT
        

通过插件将jar包发布到私服,执行clean 即可;

 
                org.apache.maven.plugins
                maven-install-plugin
                2.5.2
                
                    
                        install-masmgc.sdk.mms
                        clean
                        
                            ${project.basedir}/lib/masmgc.sdk.mms-1.0.3-SNAPSHOT.jar
                            default
                            com.hikvision.js
                            masmgc.sdk.mms
                            1.0.3-SNAPSHOT
                            jar
                            true
                        
                        
                            install-file
                        
                    
                
            

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号