项目架构师之路(二) 你不得不知的 spingboot项目正式环境的部署方式

项目部署如何解决配置文件,lib包的分离进行部署

前言:我们在本地运行项目很简单,直接打包run就可以。面试的时候人家问你,“你们项目是用springboot是吧,那你们在正式环境下面是怎么部署的呢?” 你要是回答“直接打整包,java -jar xx.jar” 那么基本就没戏了。 因为很多开发人员是接触不到正式部署的,所以这个环节也很少人知道。我看过一些博客,基本也没有这方面的文章,所以我就在这里为大家揭秘正式环境下的springboot项目部署问题。

这里主要讲的是项目打包jar方式的形式进行部署。当然很多人会反驳,大家都是打包war放到tomcat里面去玩。因为这种情况可以调很多tomcat的参数。这个其实差不多的  因为内置的tomcat参数都是可以写到项目的配置文件里面。

现在开始:

第一步 配置项目的pom进行打包。pom.xml添加打包配置

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
					<encoding>UTF-8</encoding>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<mainClass>com.qh.PlatformMgrApplication</mainClass>
					<layout>ZIP</layout>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

第二步 这时候直接点击maven的install、package  (至于这两个的区别不懂的,可以网上学习一下这方面资料比较多就不细说)。点击之后target会生成jar包。

生成的jar

现在我们来看下这个文件有多大,

打开当前目录

基本都是50M以上,我这个项目没有什么太多业务也都是80M。 正常的项目基本都是两三百了。   那么这个时候要是上传到正式环境肯定比较吃力。当然那些网络很好的就不说了。第三步 用解压工具解压前面那个90M的jar,找到lib的文件夹,复制出来

解压刚刚的jar  找到lib复制出来。这个时候可以将lib单独上传到服务器。

第四步: 这个时候我们修改一下pom.xml的配置文件

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
					<encoding>UTF-8</encoding>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<mainClass>com.qh.PlatformMgrApplication</mainClass>
					<layout>ZIP</layout>
					<!-- 添加这行代码 去掉lib-->
					<includes>
						<include>
							<groupId>nothing</groupId>
							<artifactId>nothing</artifactId>
						</include>
					</includes>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

同时修改之后的pom.xml。保存之后重新打包项目。

现在看看打包之后jar有多大。

没错,是不是不相信自己的眼睛,怎么只有4M多了。那看看我们刚刚复制出来lib

 

是的,lib有80M。  

总结: 这样子我们在部署项目的时候,就可以先将lib单独上传到服务器。然后在修改代码之只需要上传这个几兆的jar包。这样子是不是很方便啊。不需要改一个小东西然后上传几百兆的文件了。  上一篇说了单独修改config里面的配置文件,是可以引用外部的,基本不需要重新部署项目,只需要重启一下项目就行。 

最后的绝招   这样子如何启动呢: lib 跟部署的jar同一个文件夹。不同文件夹修改lib的路径   比如  /java/lib 这样子

nohup java -Dloader.path=lib -jar /xxx.jar &
发布了35 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u010494101/article/details/104275103