阿里云个人服务器搭建项目笔记二:springboot项目打包部署到服务器

maven打包:

进入项目根目录:
踩坑1:
mvn clean package,运行target中的jar包
java -jar seckill_boot-1.0-SNAPSHOT.jar 报错:
jar包中没有主清单属性。
原因是这种方式打包的jar没有入口main,也没有各种依赖jar包。
需要在pom.xml中导入

	  <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>

踩坑2:
导入了依赖,发现打包之后运行仍然找不到主清单属性,原因在于:
不能将上面的依赖直接写在其他plugin标签后面!
要将上面的依赖另写一个<plugins></plugins>大标签内。

重新mvn clean package即可。

上传jar包到服务器:

1.同样使用xftp上传jar包到tmp目录
2.在//var文件夹下mkdir新建 www 文件夹
3.新建seckill文件夹
4.将jar包移动到seckill文件夹下并重命名为seckill.jar
mv //tmp/seckill_boot-1.0-SNAPSHOT.jar ./seckill.jar
5.chmod -R 777 *赋予seckill.jar权限,然后java -jar启动
6.将阿里云服务器处的80/9999端口打开,开放给0.0.0.0/0
7.输入服务器 ip:端口号 确认访问是否成功。

编写外挂配置文件启动

如果我们要修改项目配置文件的话,那么我们每次都要从本地修改配置文件,打包上传重新部署,这样效率很低。
由于jar包内的配置每次都要修改,我们可以配置一个脚本使其覆盖掉jar包内的配置文件的某些属性,达到只改一次就能起效果的状态。

如何使用外挂配置文件的方式启动呢?
1.jar包的同级目录下创建application.properties。编辑需要覆盖的属性,这里以server.port=80端口为例测试。
2.重新以外挂配置文件启动项目:命令如下:
java -jar seckill.jar --spring.config.addition-location=/var/www/seckill/application.properties

编写deploy脚本启动

在seckill下编写deploy.sh文件:
nohup java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar seckill.jar --spring.config.addition-location=/var/www/seckill/applic
ation.properties

参数解释:
nohup:目的是使java程序不会被中止。
-Xms400m -Xmx400m:jvm最小最大都为400m,防止内存不稳定。
-XX:NewSize=200m -XX:MaxNewSize=200m: 新生代的最小大小和最大大小,均为200m。

使用 ./deploy.sh & 命令执行脚本,这个时候终端是看不到输出的。
观察输出的方法:使用 tail -200f nohup.out命令观察控制台的输出。
进入之后就可以实时观察项目运行效果。
此时即使ctrl+c退出,也不会影响java程序的运行。

至此为止,完成了使用脚本将项目启动并且不随意退出的效果。

发布了16 篇原创文章 · 获赞 2 · 访问量 437

猜你喜欢

转载自blog.csdn.net/qq_31314141/article/details/104296581