spring boot打包为war包,引入外部jar包

Posted 無玑小姐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot打包为war包,引入外部jar包相关的知识,希望对你有一定的参考价值。

1,在src/main/resource下新建目录jar,将外部jar包放在该目录下

 

 

 2,在pom.xml中添加依赖

 

 

 groupId,artifactId,version可随便写

<dependency>
            <groupId>com.huawei</groupId>
            <artifactId>gsjdbc4</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/jar/gsjdbc4.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>com.huawei</groupId>
            <artifactId>gsjdbc200</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/jar/gsjdbc200.jar</systemPath>
        </dependency>

此时,本地启动项目访问是没有问题的,但是打包的话就会报错,需要以下步骤

3,pom.xml中增加plugin配置

 

 

 

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>src/main/resources/jar/</directory>
                            <targetPath>WEB-INF/lib/</targetPath>
                            <includes>
                                <include>**/*.jar</include>
                            </includes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

然后再打包即可

4,遇到的问题

打包时报错: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

原因: maven 插件 maven-war-plugin 中 Servlet 版本太低,要求必须要有web.xml文件才行

解决方法: 把plugin配置里面的<version>2.4</version>去掉,再次打包即可

 

以上是关于spring boot打包为war包,引入外部jar包的主要内容,如果未能解决你的问题,请参考以下文章

spring-boot分环境打包为war包

Spring boot如何引入本地jar包?

Spring Boot 集成servlet,发布为可直接运行的war包,方便后续打包为docker镜像。

Spring Boot以War包启动

Spring Boot2.0之 jar打包方式

如何把Spring Boot打包成war