Spring Boot 打成的 jar 和普通的 jar 有什么區別 ?


Spring Boot 打成的 jar 和普通的 jar 有什么區別 ?

Spring Boot 打成的 jar

  • Spring Boot的項目終止以jar包的形式進行打包,這種jar包可以通過可以通過命令(java -jar xxx.jar)來運行的,這種jar包不能被其他項目所依賴,即使被依賴了也不能直接使用其中的類。普通的jar包,解壓后直接就是包名,包里就是我們的代碼,而 Spring Boot 打包成的可執行 jar 解壓后,在 \BOOT-INF\classes 目錄下才是我們的代碼,因此無法被直接引用。如果非要引用,可以在 pom.xml 文件中增加配置,將 Spring Boot 項目打包成兩個 jar ,一個可執行,一個可引用。
    下面是不同jar包的目錄結構
  • Spring boot 的jar包

  • 普通的jar包

Spring Boot 打可依賴的jar

只需要在pom文件中配置如下信息

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <!--可以把依賴的包都打包到生成的Jar包中 -->
                            <goal>repackage</goal>
                        </goals>
                        <!--可以生成不含依賴包的不可執行Jar包 -->
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 一次打包生成兩個jar包,其中XXX.jar可作為其它工程的依賴,XXX-exec.jar可被執行

  • 我們看一下目錄結構 是否是我們所希望的。

可執行的jar

可依賴的jar包

備注

結束

  • 相信小伙伴對Spring Boot jar 和普通的jar有一定的了解,希望本文可以幫助到你


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM