当前位置:   article > 正文

SpringBoot 打包成的可执行jar不能被其他项目依赖的问题_将依赖也导入jar包后,不要将java 文件放进boot-inf里

将依赖也导入jar包后,不要将java 文件放进boot-inf里

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

第一个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);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/241432
推荐阅读
相关标签
  

闽ICP备14008679号