0


SpringBoot添加外部jar包及打包(亲测有效)

首先要下载所需jar包到本地,然后复制下载好的jar到项目中,

然后修改项目的pom文件,将项目里的jar包引入到maven

<dependency>
    <groupId>slf4j.api</groupId>
    <artifactId>slf4japi</artifactId>
    <version>2.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}\src\main\resources\lib\slf4j-api-1.7.25.jar</systemPath>
</dependency>

需要注意的是,version一定要填写不然会报错

scope=system表示此依赖是来自外部jar,而不是maven仓库。当scope设置为system时,systemPath属性才会生效,systemPath为一个物理文件路径,来指定依赖的jar其物理磁盘的位置。

${project.basedir}代表根目录。

Jar执行解决方案:

将jar引入好之后,要将includeSystemScope参数设置为true不然打包时会报错

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
        <includeSystemScope>true</includeSystemScope><!--当scope为system时增加配置-->
    </configuration>
</plugin>

说明:重要的是includeSystemScope为true。

总结

(1)如何添加外部jar包:指定score=system,并且配置sysemPath。

(2)如何打包外部jar包:使用spring-boot-maven-plugin,并且配置属性includeSystemScope为true。

War执行解决方案:

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

directory: lib包所在路径

targetPath:编译后lib包中jar位置

原因:在项目中引入本地包在打包的时候会把本地引入的jar打包到lib-provided文件夹中,但tomcat只扫描lib中的jar所以在请求接口时会发生NoClassDefFoundError错误,所以要在编译时指定本地jar问价的位置

将本地项目中新增的jar包,上传到git

需要修改项目中.gitignore文件,删除*.lib与*.jar

删除文件中*.lib与*.jar之后即可上传jar到git,不然会把lib文件夹与jar包过滤掉

标签: spring boot jar python

本文转载自: https://blog.csdn.net/zlfjavahome/article/details/131609454
版权归原作者 zlfjavahome 所有, 如有侵权,请联系我们删除。

“SpringBoot添加外部jar包及打包(亲测有效)”的评论:

还没有评论