项目部署如何解决配置文件,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 &