Spring Boot 项目部署在linux上

SpringBoot 部署在linux上

今天中午本来已经在有道云上写好了博客,但是没有代码图片和效果图,那个保存不了,回家打开发现全没了,只有标题。于是重新撸了一遍,所有都是从0开始。很值得学习,也遇到了些问题。不多说开始了,今天主要学习部署项目。
微服务流行的今天,不知道从何时开始每个java后台人员去面试的时候简历上都有一条,熟悉并使用springcloud框架。这也许是微服务大行其道带来的效应,就算你不会去看下博客也能很快上手。大多数如今都会使用,但是极少数会去部署这些微服务,因为只需要负责写接口,然后交给组长或者运维就可以了。如果你学会了部署是不是比他们多一个加分项?部署的方式很多,比如使用docker创建dockerfile文件的形式,这种比较流行,后续有机会搞一下,这里介绍下用脚本启动。

一,项目准备工作

spring boot项目准备
我这里使用的是eclipse,当然你用idea也是差不多的步骤。
新建一个maven项目,因为只是演示,所以不需要太多功能。
下面是我的pom.xml

  4.0.0
  
  com.safe
  jifeng
  0.0.1-SNAPSHOT
  jar
  
	 
		org.springframework.boot
		spring-boot-starter-parent
		1.5.4.RELEASE
		 
	
	
  jifeng
  
    
    
        UTF-8
        UTF-8
        1.8
        Edgware.SR1
        1.16.18
    
    
  
    
      junit
      junit
      3.8.1
      test
    
    
	
		org.springframework.boot
		spring-boot-starter-web
	
  
  
	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	
	
	        
	            aliyun
	            aliyun
	            http://maven.aliyun.com/nexus/content/groups/public
	        
	

需要注意到的是要用到打包的插件,还有阿里的仓库。
然后是一个启动类

package com.safe.jifeng;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication //Spring Boot核心注解,用于开启自动配置
public class DemoApplication {

    @RequestMapping("/")
    String index(){
      return "Hello Spring Boot";
    }
  
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

就这些,右键run as java Application控制台就会打印一些信息,默认使用8080端口。
在浏览器输入localhost:8080,就会看到Hello Spring Boot的字样,说明运行成功。

二,打包项目

接下来就需要将项目打包,打包可以打包成war或者jar都可以,自己在pom设置。我一般打包成jar。怎么打包?可以使用命令行,mvn clean 然后mvn install 当然mvn package也可以。我比较懒,采用的插件,直接右键maven run install。第一次打包会去下插件,等下好后就开始打包。

Spring Boot 项目部署在linux上_第1张图片
之前打包遇到两个问题,
一个是项目用的jre环境,结果不能打包,改成jdk就好了。
另一个是有的文件字符有问题,极个别,现将文件内容拷出来,删除文件,新建拷进来,重新打包就好了。

这里可以看到打包后的路径,还有打包成功的提示。至此,打包完成。

三,服务端准备

jar要想在服务器上运行,就必须需要java环境支持。首先
还记得上次我说过的mobaxterm吗?这里就体现了他的强大。
只需要连接远程服务器,勾下左下的选项,你cd到哪个目录左边的目录也会随之变化。
首先java -version 发现竟然有openjdk11.我就不用另外配置了,我项目使用的1.8.记住向上兼容于原理,如果你们的没有那就自行安装和项目一致的版本或者更高的。
cd /usr/local/
mkdir web
将jifeng-0.0.1-SNAPSHOT.jar拖拽到左边的目录下就行。
当然你也可以使用ftp上传。
我们看下当前主机的ip
Spring Boot 项目部署在linux上_第2张图片

三,项目启动

我们都知道启动一个jar的命令 java -jar xxx.jar
这里我们可以使用java -jar /usr/local/web/jifeng-0.0.1-SNAPSHOT.jar
的确输出了和之前控制台一样的效果。
我们在浏览器输入192.168.220.129:8080
Spring Boot 项目部署在linux上_第3张图片
说明项目已经部署好了。但是这样就完事了吗?并没有,因为我们当前是停留在这个界面,如果ctrl+c项目就停止了,而且不能有其他操作,所以我们需要优化。
我这里直接把命令写进脚本,下次直接脚本让他后台启动就行。
touch serstar.sh
chmod -R 777 serstar.sh
vim serstar.sh
依次是创建一个脚本 并赋予可执行的权限,编辑脚本
shell后台执行jar并将结果输出到制定文件,这个目录和文件要提前建好。
如果需要更新jar,需要现将jar停止。
Spring Boot 项目部署在linux上_第4张图片
这里只是这样,还不够完善,但是也够用,如果是项目中记得备份,将上一次的备份到一个目录里面,然后再用新的文件覆盖旧的即可。
我按照上面的serstop.sh有点问题,我自己也没学过shell,这是从网上拷的,报的是pid没有和kill使用有问题。我下次琢磨后再修改。

你可能感兴趣的:(SpringBoot)