上一篇文章介绍了:SpringBoot创建的jar包怎么作为依赖提供给第三方
狗血的问题又被我遇到了,我自己新建了个项目,引用我自己打包的依赖。然后通过本地导包的方式引入到项目里面,结果在IDEA里面运行很正常,但是项目打包成jar以后,运行jar报错。检查发现我那个本地依赖的jar包没有被打包进新项目的BOOT-INF
目录下的lib
文件夹里面,但是通过maven在线导入的第三方依赖全在里面。这不是造孽嘛!我自己失败了几次,也没有合适的方法。结果机缘巧合之下,发现了同病相怜的人啊。
实现步骤:
1.在项目里跟src同一级创建目录lib(一开始就是普通文件夹,配置完后面会变成资源文件夹[显示四个橙色的横杠])。
2.在工具栏里的file
(文件)选项下依次选中project structure
(项目结构)——>librarier
(库)——> +
(新建项目库)——>Java
——>(在本地找到你的项目下面的lib文件夹)——>OK
(确定)——>Jar Directory
(选择所选文件夹的类别)——>后面都是OK
(确定),就完成了。
3.在你项目的pom.xml
下面找到<build>
标签,然后把下面的配置粘贴到里面就行了。
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--设置为true,把本地的system类型jar打包进去。-->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
<!--引入本地资源-->
<resources>
<!-- 本地第三方依赖包打包进项目 -->
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<!-- 本地自定义配置打包进项目 -->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
4.在你项目的pom.xml
下面找到<dependencies>
标签,然后把下面的配置粘贴到里面就行了。
<dependency>
<groupId>com.demo</groupId>
<artifactId>DEMO</artifactId>
<version>0.0.1</version>
<type>jar</type>
<scope>system</scope>
<systemPath>${basedir}/lib/demo-jar-0.0.1-SNAPSHOT-lib.jar</systemPath>
</dependency>
5.然后把你本地的第三方依赖都复制到lib目录下面,项目打包的时候就能把这些jar包都打包进去了。
本文部分参考:码海(点击访问)