正好今天碰到了,就在这里总结下,习惯了将公用的项目打包成jar,然后当做工具类引入到自己项目中,直接调用,感觉甚是方便...
但有没有发现,平时我们引用的大部分情况下是一个maven项目,然后打包好的jar也是maven项目的结构,所以我们可以正常的引用和使用,但现在已经是springboot的天下了,有的时候你想把别人的一个项目引入自己的项目中时,发现对方的项目是springboot项目,你还按照以前的那种方式进行打包和引入,发现引入后不能使用了,这个时候就需要用到本篇的知识去解决了,废话不多数,直接进入正题:
1. 剔除要引入的springboot项目中不需要的文件:如Application和ApplicationTests等
2.打包
不能使用springboot项目自带的打包插件进行打包:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
而应当使用传统项目的maven打包:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source> <!--指明源码用的Jdk版本-->
<target>1.8</target> <!--指明打包后的Jdk版本-->
</configuration>
</plugin>
</plugins>
</build>
因为springboot-maven-plugin打包的第一级目录为Boot-INF,无法引用.
并install到本地maven库中:
maven clean install
3.启动类引入
在Application启动类@SpringBootApplication(scanBasePackages = {"依赖的项目的class路径", "自己项目的class路径"})
4.在pom中引入
在你的项目的pom.xml中引入你刚刚打包好的项目,如此,便完成了在自己项目中引用别人springboot项目.jar