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文件,加入如下配置即可:

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

补充: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方法的参数,可不填。

标签: none

已有 2 条评论

  1. 小孙子 小孙子

    谢谢站长,这真是一个好网站!

  2. king king

    涨姿势了

添加新评论