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

SpringBoot引入本地jar包,打包成war并成功部署。

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

SpringBoot引入本地jar包,打包成war并成功部署。

在做项目的时候,有时需要引入第三方Jar包来完成指定的功能。但是会出现,引入jar包后,在编辑器上可以正常访问,但是打包成war后就会报class not found的异常。

本篇所有操作都基于idea

一、引入jar包

1、在resources文件夹中创建一个lib文件夹,并复制Jar包。

2、点击File->Project Structure->Libraries

然后选择所在的lib文件夹,点击OK。

二、配置pom

1、引入jar包


    com.pdd
    pdd-sdk-1
    1.11.68
    system
    ${pom.basedir}/src/main/resources/lib/pop-sdk-1.11.68-all-sources.jar

${pom.basedir}为maven的路径,也可用${project.basedir},但是我用这个的时候地址还是会错误。

groupId、artifactId、version 这三个可以随便写,想写啥都可以。重要的是scope、systemPath这两个要确保不出错。

scope就是system,systemPath为jar包所在路径。

到此,在idea中就可以正常的使用Jar包了,但是打包成war就会报class not found的异常这是因为打包后,没有把jar包一起打包。

2、配置打包War(重点!)

1️⃣SpringBoot想要打包成war包部署的话,需要把SpringBoot自带的tomcat给干掉。

 
    org.springframework.boot
    spring-boot-starter-web
    
        
            org.springframework.boot
            spring-boot-starter-tomcat
        
    

网上查资料时,发现有很多人说还需要加上以下代码,但是我加上后反而不好使,所以我没有加。


    javax.servlet
    javax.servlet-api
    provided

2️⃣修改自启动类,重写初始化代码
用过springboot都知道每个项目都有一个Application的启动类

我们需要把类似于web.xml的配置方式在application中启动spring的上下文,在启动类中继承SpringBootServletInitializer重写configure方法即可,其代码如下:

  @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(AllianceApplication.class);
    }

3、打包war后一起打包jar(超重点!!)

把pom默认的Jar打包插件改为War打包插件,如果没有引入外部Jar则不需要修改,使用原来的插件即可


     org.apache.maven.plugins
     maven-war-plugin
    
        
            
                src/main/resources/lib
                WEB-INF/lib
                
                    **/*.jar
                
            
        
    
 
三、打包war

可用idea的自带Maven工具直接打包,也可以使用命令打包。我是直接用工具的。

可以先clean然后再package,直接双击即可。这样就会在target打包成war,直接部署就好了。

以上。

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

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

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