Spring Boot 創建可執行jar

轉載自素文宅博客 Spring boot教程:https://blog.yoodb.com/yoodb/article/detail/1419
創建一個完全自包含的可執行jar文件,該jar文件可以在生產環境運行。可執行jars(有時候被稱爲胖jars “fat jars”)是包含你的編譯後的類和你的代碼運行所需的依賴jar的存檔。

可執行jars在Java沒有提供任何標準的加載內嵌jar文件(即jar文件中還包含jar文件)的方法。如果想發佈一個自包含的應用這就是一個問題。爲了解決該問題,很多開發者採用”共享的”jars。一個共享的jar簡單地將來自所有jars的類打包進一個單獨的“超級jar”。採用共享jar方式的問題是很難區分在應用程序中可以使用哪些庫。在多個jars中如果存在相同的文件名(但內容不一樣)也會是一個問題。Spring Boot採取一個不同的途徑,並允許你真正的內嵌jars。

爲了創建可執行的jar,需要將spring-boot-maven-plugin添加到我們的pom.xml中。在dependencies節點下插入以下內容:

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

注意:spring-boot-starter-parent POM包含用於綁定repackage目標的 配置。如果你不使用parent POM,你將需要自己聲明該配置。具體參考“Spring Boot Maven插件”。

保存pom.xml配置文件,然後從命令行運行mvn package命令,具體執行如下:

$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] .... ..
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:1.3.0.BUILD-SNAPSHOT:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

查看target目錄,應該看到myproject-0.0.1-SNAPSHOT.jar。該文件應該有10Mb左右的大小。如果想看內部結構,你可以運行jar tvf命令:
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar

在target目錄下,應該也能看到一個很小的名爲myproject-0.0.1-SNAPSHOT.jar.original的文件。這是在Spring Boot重新打包前Maven創建的原始jar文件。

$ java -jar target/myproject-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.3.0.BUILD-SNAPSHOT)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.536 seconds (JVM running for 2.864)

快捷鍵ctrl+c退出程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章