1.项目打包
修改子模块pom.xml文件,为其指定启动类和打包类型
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定启动类 -->
<mainClass>com.backend.UserApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<!-- 将依赖到的包都放进去 -->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
为每个子模块都进行配置后,在IEDA右侧打开Maven,点击父工程生命周期中的package即可完成所有子模块的代码打包。
所有子模块的jar包在对应的子工程的target目录下找到。
2.项目部署
有了jar包之后,我们就可以通过Xshell或其他连接服务器的工具,将所有jar包上传到我们的服务器上(博主这里使用的是Xshell工具连接服务器)。
# (如果没有安装,则需先执行一下命令进行安装)
sudo apt install lrzsz
# 上传dist.zip 或 dist.rar压缩包
sudo rz (回车后选择对应文件即可上传)
如果使用lrzsz上传文件出现乱码,请参考使用lrzsz命令上传出现乱码。
由于微服务项目通常不止一个jar包,一个一个的启动太过于麻烦,所以博主这里采用了批处理指令。
# 在服务器上传jar包的位置创建 .sh 文件
sudo touch application.sh
# 使用 vim 对 application.sh 文件进行编辑
sudo vim application.sh
# 添加批处理指令 (使用 nohub 注意以 & 结尾)
nohup java -Xmx1024M -Xms256M -jar shift-scheduling-calculate-service-0.0.1-SNAPSHOT.jar --server.port=6004 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar user-0.0.1-SNAPSHOT.jar --server.port=9001 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar gateway-0.0.1-SNAPSHOT.jar --server.port=9000 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar system-server-0.0.1-SNAPSHOT.jar --server.port=9002 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar order-party-0.0.1-SNAPSHOT.jar --server.port=9003 --spring.profiles.active=prod &
- nohup 使用nohup可以让项目在后台运行,不写nohup可以看到jar包运行的输出
- -Xmx Java Heap最大值,默认值为物理内存的1/4,应该视物理内存大小及计算机内其他内存开销进行设置
- -Xms Java Heap初始值,也是最小值
- -Xmn Java Heap Young区大小,不熟悉最好保留默认值
- -Xss 每个线程的stack大小,不熟悉最好保留默认值
- –server.port=6004 指定jar运行的端口号,也可以不指定,因为配置文件也写了,不过想指定其他的可以在这里指定
- –spring.profiles.active=prod 指定运行jar使用的配置,也可以=dev、test
赋予applocation.sh可执行权限
chmod u+x *.sh
运行批处理文件
sh application.sh # 或者 ./application.sh
查看和停止运行jar包
# 查看正在运行的Java程序
jps
# 停止正在运行的java程序
kill -9 238351