Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

403人浏览 / 0人评论

Spring Boot是由Pivotal团队在2013年开始研发,2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring 4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。

Spring Boot 项目最终打包成的 jar 是可执行 jar ,这种 jar 可以直接通过 java -jar xxx.jar 命令来运行,但是,这种 jar 不可以被其他项目依赖,即使依赖了也无法使用其中的类。

Spring Boot 的 jar 无法被其他项目依赖,主要还是它和普通 jar 的结构不同。

普通的 jar 包,解压后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在 BOOT-INFclasses 目录下才是我们的代码,因此无法被直接引用。

如果A模块包依赖了B模块,在B模块的pom文件,加入如下配置即可:


    
        
            org.springframework.boot
            spring-boot-maven-plugin
            
                true
            
        
    
补充:java -jar 命令解读
java -jar myClass.jar

执行该命令时,会用到 META-INFMANIFEST.MF 这个文件。在该文件中,有一个叫 Main -Class的参数,它说明了java -jar命令执行的类。

java -jar  myClass.jar param1 param2

运行jar包,会自动到 jar 包中查询META-INFMANIFEST.MF中定义的启动类并运行。param1,param2为main方法的参数,可不填。

全部评论

晴天下起了小雨
2017-10-01 18:00
很喜欢,果断关注了
wjmyly7336064
2017-10-01 18:00
相当实用,赞美了
橘大佬
2017-10-01 18:00
就是有些细节再到位点就好了…