Spring Boot 初級入門教程(十一) —— 打分離 jar 包、部署和測試(附原始碼)
阿新 • • 發佈:2018-12-08
分離 jar 包,也就是把工程原始碼打包到 *.jar,而把工程依賴的所有 lib 單獨生成,這樣打包的好處是,在依賴包沒有修改的情況下,部署時只需要上傳一次依賴包,每次部署的專案 jar 包很小,在伺服器網路不太好的情況下,這樣做是非常有必要的,因為上傳 20M 和 上傳 20K 的時間還是有很大差別的。
在修改配置前,有幾個小配置需要提前修改一下,這是前面的遺留問題。
一、修改配置,新增 jdk 版本指定。
在前面測試的過程中,大家有沒有發現,加入自己配置的 jdk 環境是 jdk8,當【選中專案-》右鍵 -》Maven -》Update Project】時,專案的 jdk 配置會預設變為 jdk7,有時候還導致專案本身報錯,不得不手動再修改為 8。所以要修改的第一個配置是如下:
<build> <plugins> <!-- 配置編譯的JDK版本及編碼 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF8</encoding> </configuration> </plugin> <!-- 這是Spring Boot Devtools Plugin的配置 --> <!-- 。。。這裡省略其它配置。。。 --> </plugins> </build>
在原來配置的基礎上新增 jdk 編譯環境版本的配置,以後 update 專案,就不會回到 7 了。
二、分離 jar 包配置。
好,言歸正傳,如何修改配置才能打包分離的 jar 包呢?配置如下:
<build> <plugins> <!-- 配置編譯的JDK版本及編碼 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF8</encoding> </configuration> </plugin> <!-- 這是Spring Boot Devtools Plugin的配置 --> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.4.0.RELEASE</version> <configuration> 如果沒有fork配置,可能devtools不會起作用,即不會restart <fork>true</fork> <mainClass>com.menglanglang.test.springboot.App</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> --> <!-- 將所依賴的三方jar包打入target下的lib目錄下 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${basedir}/target/lib</outputDirectory> </configuration> </execution> </executions> </plugin> <!-- 打jar包的main方法配置 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>com.menglanglang.test.springboot.App</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> <!-- 。。。省略n行。。。 --> </build>
打包後,可以看到 target 下生成了單獨的 lib 資料夾,裡面放的是所有的依賴庫。需要把 lib 目錄及 test-springboot-1.0.jar 都上傳到伺服器,可以看到 test-springboot-1.0.jar 只有不到 20K。
啟動程式,進行測試,可以看到和完整 jar 包一樣,所有頁面也都可訪問。
Good Luck!
截止目前,最新程式碼包下載:https://pan.baidu.com/s/1MsFiZI0fW3a6eor_2WZtMw