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