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