如何将SpringBoot项目打成可导入到其他项目的jar包,按照官方教程的话,打成的jar导入到其他项目无效。

自己打包的jar和引入的jar格式不一致,不知道什么原因,目前导入的jar,无法正常使用。
clipboard.png
clipboard.png

阅读 12.3k
2 个回答

你或许需要:
1、剔除一些不需要的文件,如Application和ApplicationTests等
2、不能使用springboot自带打包,使用普通maven打包

<build>
   <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-compiler-plugin</artifactId>
         <configuration>
            <source>1.8</source>
            <target>1.8</target>
         </configuration>
      </plugin>
   </plugins>
</build>

注意:spring-boot-maven-plugin打包,出现了bug。虽然目的项目引用了该打包项目,但是任然无法引用jar中的类,因为springboot-maven-plugin打包的第一级目录为Boot-INF,无法引用

注-1、test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖

注-2、compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去

注-3、provided依赖:在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突

注-4、 runtime在运行的时候依赖,在编译的时候不依赖

注-5:加入本地Maven路径,类似:

C:\Users\ofcard\.m2\repository\com\scn7th\ding-robot-bind-send\0.0.1-SNAPSHOT>mvn install:install-file -Dfile=ding-robot-bind-send-0.0.1-SNAPSHOT.jar -DgroupId=com.scn7th -DartifactId=ding-robot-bind-send -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar

参考:
将一个项目打成一个jar包,导入到另一个项目中并调用
Gradle构建SpringBoot并打包可运行的jar配置
springboot打包成jar文件无法正常运行,解决办法已经找到
在spring boot项目(maven)中引入其他 spring boot项目(jar)

spring-boot的项目,如果需要“打包给其他项目用“就不能用spring-boot的插件打包,用默认的打包
但是这样之后的jar包是不能java -jar运行的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏