12.20 spring-boot-maven-plugin插件的作用

pom文件中添加了“org.springframework.boot:spring-boot-maven-plugin”插件。在添加了該插件之後,當運行“mvn package”進行打包時,會打包成一個可以直接運行的 JAR 文件,使用“java -jar”命令就可以直接運行。

spring-boot-maven-plugin插件是將spring boot的應用程序打包成fat jar的插件,藉助spring-boot-maven-plugin將所有應用啟動運行所需要的jar都包含進來,從邏輯上將具備了獨立運行的條件。

spring-boot-maven-plugin插件的作用

一、添加spring-boot-maven-plugin插件

官網是這樣描述的:為了創建一個可執行的jar包,我們需要添加spring-boot-maven-plugin到pom.xml文件中。在dependencies 節點下面添加如下配置。

<build>

<plugins>

<plugin>

<groupid>org.springframework.boot/<groupid>

<artifactid>spring-boot-maven-plugin/<artifactid>


二、mvn package打包

保存 pom.xml 文件之後,執行打包命令:mvn clean package -Dmaven.test.skip=true,如果需要執行單元測試,則直接 mvn package。

spring-boot-maven-plugin插件的作用


使用spring-boot-maven-plugin生成的jar 包含了所有第三方依賴的jar包。如下是fat jar目錄結構,包含三個一級目錄: BOOT-INF、META-INF和org。

spring-boot-maven-plugin插件的作用

一個jar包要能夠運行,那麼必須在其根目錄下的 META-INF 目錄下的 MANIFEST.MF 文件中聲明 Main-Class 這個屬性。

如下圖所示,可以發現,它的 Main-Class 指定的值是 org.springframework.boot.loader.JarLauncher, spring boot 會通過這個類去間接的執行 Start-Class 指定的類,即我們的主類。

spring-boot-maven-plugin插件的作用

三、上傳jar包和配置文件

將 jar 包上傳至服務器,同時把生產環境的配置文件(比如 application.yml)修改好之後放到與 jar 文件相同的目錄,運行:java -jar my-project-0.0.1.jar,不需要的時候 Ctrl+c 就退出,如果需要一直運行,可設置成開機啟動。


打包的時候,如果沒有將配置文件加載進去,或者有些系統,關於一些數據庫或其它第三方賬戶等信息,由於安全問題,其配置並不會提前配置在項目中暴露給開發者。對於這樣的情況,我們在運行程序的時候,能夠通過參數指定一個外部配置文件。

java -jar my-project-0.0.1.jar --spring.config.location=application.properties


分享到:


相關文章: