一、jar包形式
pom配置文件配置打包为jar包:
然后使用maven的package打包:
打包完成后,target目录下面会有一个jar包
项目启动方式:
单一配置启动:(开发,测试,生成都在一个环境里)
cmd进入jar包目录,命令:java -jar xxx.jar
使用该方法的话,cmd窗口一关闭,程序也就不运行了。
可以改为后台启动程序的方法,可以使用该命令:javaw -jar xxx.jar >system.log
此时,控制台不会显示任何信息,而在当前目录下面会生成一个log文件,日志信息就会记录在log文件中生成了
停止程序,打开任务管理器,
结束该任务就可以了。
多环境启动:
命令:java -jar xxx.jar --spring.profiles.active=xxx
例如,项目中有三个配置文件,分别对应开发、测试和生产环境
application-dev.properties:server.port=8081 (开发环境)
application-test.properties:server.port=8082 (测试环境)
application-prod.properties:server.port=8083 (生产环境)
我想使用开发环境,输入命令:java -jar xxx.jar --spring.profiles.active=dev,这时候端口就变成8081;
我想使用测试环境,输入命令:java -jar xxx.jar --spring.profiles.active=test,这时候端口就变成8082;
我想使用生产环境,输入命令:java -jar xxx.jar --spring.profiles.active=prod,这时候端口就变成8083。
- Linux下后台启动
命令:nohup java -jar xxx.jar & 或 nohup java -jar xxx.jar >bootLog.log &
第一个命令方式没有自定义log文件名,会在当前目录下自动生成一个名为 “nohup.out” 的文件:
第二个命令方式自定义log文件名,会在当前目录下自动生成当前定义的log文件:
查看日志文件,启动成功后,可以正常访问。
查看当前jar包名的进程,杀死该进程即可关闭运行。
二、war包形式
将war包复制出来,粘贴到tomcat下的webapps目录下,启动tomcat,可以正常访问项目。
4.2、jar包改war包
①修改pom.xml文件,将项目打成war包
②修改pom.xml文件,移除嵌入式tomcat插件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 去除内置的tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
或者
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- 去除内置的tomcat -->
<scope>provided</scope>
</dependency>
③修改pom.xml文件,添加 servlet-api 依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
④自定义类继承 SpringBootServletInitializer 类,重写初始化方法
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(BootJarApplication.class);
}
}
然后,按照4.1方法打包并放在tomcat下运行。
注意:
1、以war包方式打包,application.properties 或 application.yml 中配置的端口和访问路径将失效;
2、程序默认访问路径为war包文件名