介绍
打包有jar和war包两种方式。
jar包: SpringBoot官网提到最多的是使用jar打包,tomcat一起打进去了,直接java -jar …your.jar就可以了。
war包: 当你要部署到自己安装的weblogic、Tomcat里,这种传统方式通常使用war包。
打包操作
1.配置POM文件
修改SpringBoot的pom.xml文件,指定项目打包出来的名称。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 打jar包类型-->
<packaging>jar</packaging>
<build>
<!-- 指定打包的包名 -->
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<!-- 使用 jdk 1.8 -->
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
2.执行打包命令
如提示"mvn 不是内部或外部命令",去配置下环境变量即可。想在idea里操作要以管理员方式启动idea。如果打包一直报错,检查settting.xml文件配置是否正确,有多余的空格。
- mvn clean:删除 target 目录
- mvn package:把 jar 打到本项目的 target 目录下
- mvn install:把 jar 打到本项目的 target 目录下,之后再将它安装到本地的 maven 仓库中
- -Dmaven.test.skip=true:跳过单元测试,也不编译测试用例类。
mvn clean package -Dmaven.test.skip=true
打包后jar包文件在target目录下。
3.阿里云启动服务
以下命令是后台启动服务,不需要记录linux的输出日志。(因为项目有自己配置的log文件)
nohup java -jar xxxx.jar >/dev/null 2>&1 &
或指定输出文件
nohup java -jar xxxx.jar > /opt/log/order-boot.out 2>&1 &
3.1 linux命令
- 命令结尾没有 “&”:当前ssh窗口,可按CTRL + C打断程序运行,或者直接关闭窗口直接退出
- 命令结尾有 “&” :表示在当窗口关闭时,程序才会中止运行。&代表让该命令在后台执行。
- nohup … &:当退出或终端关闭时,程序仍然运行。所有输出被重定向到nohup.out的文件中。
- /dev/null :Linux的特殊文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
- 2>&1:将stdout(标准输出文件)和 stderr(标准错误文件) 合并后重定向到 /dev/null
3.2 Java命令
- 修改端口命令:-Dserver.port=8090
- 修部署文件命令:-Dspring.profiles.active=prod
3.3 参考
Shell 输入/输出重定向
后台执行jar不产生nohup.out
操作服务状态
- 查看项目启动情况:ps -ef |grep xxxx.jar
- 停止服务器:kill -9 xxx
- 启动服务器:systemctl start xxx
- 停止服务器:systemctl stop xxx
- 开机启动:systemctl enable xxx
- 去掉开机启动:systemctl disable xxx