SpringBoot 打包成的可执行jar不能被其他项目依赖的问题

springboot默认可执行jar

如果正常打包Springboot项目会打成一个可执行jar,并且里面会有全部的依赖jar。
在这里插入图片描述
就是上面的拥有BOOT-INF文件。这样的可执行jar是无法被其他项目进行pom依赖使用的。

不可执行jar

如果非要将 Spring Boot 打包成一个普通 jar 被其他项目依赖,技术上来说,也是可以的,给 spring-boot-maven-plugin 插件添加如下配置:

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <classifier>exec</classifier>
      </configuration>
    </plugin>
  </plugins>
</build>

在这里插入图片描述

第一个jar是可以被导入的不可执行jar,并且去掉了所有依赖jar,
而第二个相反,是可执行jar,并且拥有所有依赖jar。

当使用SpringBoot项目打成的不可执行jar包到其他项目中

一定要在Application,Spring入口类中 添加配置 同时扫描自己的mapper目录和引入的dao(持久层)目录,并且之前不需要声明@ComponentScan({“cn.com.xxx”})因为Spring会帮你扫描全局组件,但是现在引入了新的如果只声明扫描@ComponentScan({“cn.com.demo”})就会导致,不扫描我们自己的组件,所以得一起声明。

@SpringBootApplication
@MapperScan({"cn.com.xxx.mapper","cn.com.xxx.dao"})
@ComponentScan({"cn.com.xxx"})
@ComponentScan({"cn.com.demo"})
@EnableScheduling
public class Application{
    public static void main(String[] args) {
        Application.run(Application.class, args);
    }
}

版权声明:本文为jj89929665原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。