SpringBoot 打包配置去除第三方依賴包


目前搭建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文件夾路徑

或者當前目錄命令可以用這個:

java -Dloader.path=./lib -jar ./cy-admin.jar

 

然后就啟動完畢了


免責聲明!

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



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