Spring Boot打jar包并运行

前言

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结束进程。>>表示追加输出到指定文件,>表示覆盖输出。

现网部署

  1. 新建文件夹,名为“项目名_端口”,例如:familydoctor-webapp_8081
  2. 新建子文件夹config、log和upload,如图所示:


    目录结构
  3. 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
  1. stop.sh
kill -9 `lsof -i:8081 -t`
  1. 增量更新
    用jar -uvf xx.jar xx xx ...命令来更新文件,多个文件用空格隔开
jar -uvf familydoctor-webapp.jar BOOT-INF/classes/app.properties BOOT-INF/classes/application.properties
  1. 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即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容