前言
Spring Boot的代码写完以后,可以打成jar包,使用内嵌的Tomcat运行,分为前台运行和后台运行两种方式。
开始创建
pom.xml
要使用maven进行打包,需要添加如下依赖
<build>
<!-- 打成jar包的名称 -->
<finalName>eureka-server</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
</plugin>
</plugins>
</build>
maven
- 执行package
只打包到target下 - 执行install
除打包到target下,还会复制到本地仓库 - 执行deploy
除打包到target下和复制到本地仓库外,还会上传到私服
包结构
项目依赖的jar包也包含在里面了
运行
前台运行
开发测试用:java -jar eureka-server.jar,直接Ctrl+C即可退出
后台运行
生产用:nohup java -jar eureka-server.jar >> catalina.out 2>&1 &,退出需直接kill掉进程
首先通过lsof -i:port -t(port为实际端口号)查到PID,再用kill -9 PID结束进程。>>表示追加输出到指定文件,>表示覆盖输出。
现网部署
- 新建文件夹,名为“项目名_端口”,例如:familydoctor-webapp_8081
-
新建子文件夹config、log和upload,如图所示:
- startup.sh
采用jdk1.8的java命令启动,引用外部config里的配置文件(默认config里的覆盖jar包里的),并将日志写到log下
nohup /opt/freeware/jdk1.8.0_144/bin/java -jar familydoctor-webapp.jar >> log/catalina.out 2>&1 &
tail -f log/catalina.out
- stop.sh
kill -9 `lsof -i:8081 -t`
- 增量更新
用jar -uvf xx.jar xx xx ...命令来更新文件,多个文件用空格隔开
jar -uvf familydoctor-webapp.jar BOOT-INF/classes/app.properties BOOT-INF/classes/application.properties
- nginx
将静态的前端代码部署到nginx下并转发给服务端,配置如下
listen 9090;
server_name localhost;
location /familydoctor-webapp {
proxy_pass http://localhost:8080/familydoctor-webapp;
}
location /fdresApp {
alias /Users/pany/Documents/workspace/aigov-app/fdresApp/dist;
index index.html;
}
配置后如果出现访问403的问题,只要修改全部文件的访问权限为777即可。