目前搭建springboot 微服務項目是最流行的架構。使用起來非常友善。搭建springboot架構。請自行參考其他文檔。這一節主要解決的問題就是。我們打包上傳部署。
以前我們打包,都是把整個項目打成jar或者war包的形式。上傳内容都是好幾百mb大小、那麼接下來我們如何。瘦身打包。并且部署呢?
1.先了解原理:
瘦身打包和和正常打包的差別。就一點:(1)BOOT-INF/lib 是否存依賴第三方包。
直接幹貨代碼:
WIN10系統:
1.正常打包
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定該Main Class為全局的唯一入口 -->
<mainClass>com.cy.plat.cyadmin.CyAdminApplication</mainClass>
<layout>ZIP</layout>
<includes>
<!-- 設定沒有jar包-->
<!--<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>-->
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依賴的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
<!--<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.3</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>-->
</plugins>
</build>
2.瘦身打包:
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定該Main Class為全局的唯一入口 -->
<mainClass>com.cy.plat.cyadmin.CyAdminApplication</mainClass>
<layout>ZIP</layout>
<includes>
<!-- 設定沒有jar包-->
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依賴的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
<!--<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.3</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>-->
</plugins>
</build>
比較方法其實就是
就是在 spring-boot-maven-plugin這個插件中,加入這麼一句話
<!-- 設定沒有jar包-->
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
3.如何部署:
我們把正常打包的項目解壓出來。找到 BOOT-INF/lib把整個lib包,複制一份,放到和瘦身jar包放同一個目錄下:
最後啟動指令:
java -Dloader.path=/path/to/lib -jar /path/to/cy-admin.jar
備注:
- 将/path/to/改成實際的路徑。
- -Dloader.path=lib檔案夾路徑
或者目前目錄指令可以用這個: