spring boot 打包成jar 在服务器上运行

来源:互联网 发布:sql have count 编辑:程序博客网 时间:2024/05/29 07:31

这次上面又给发布了个任务 ,搞一个中间件管理的后台,开放两个接口
一个是用于认证,一个用于流量上传,
由于只有3天时间,时间太过紧迫,于是前后端设计都自己来做
前端页面找了个bootstrap的页面来搞
我在这里找了个demo开始用
http://sudasuta.com/bootstrap-admin-templates.html

然后用了热部署

        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>            <optional>true</optional>        </dependency>

在pom.xml里加上这个开发工具

我的开发工具是IDEA 2017
在setting 里面搜索complier 把自动编译勾上
然后按Shift+Ctrl+Alt+/,选择Registry
把complier.automake.allow.when.app.runing 勾上
重启一下IDEA和项目就可以自动编译了.
ctrl+s 保存按下后,idea处理会重启springboot 速度挺快的 一般都是1s,2s的样子,
但是经常 会有起不来的情况,那么就要手动按重启按钮了
或者mvn spring-boot :run

在开发过程中有遇到如何生成随机32位字符串的问题.

/**      * 生成32位编码      * @return string      */      public static String getUUID(){          String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");          return uuid;      } 

用UUID工具包就好了.

然后在数据库设计中某个字段要是唯一一个的

ALTER TABLE `t_user` ADD unique(`username`);

t_user 是表名, username是要唯一得到字段,就好了

然后spring boot 启动经常占用端口
我们可以把端口改了 application.properties 文件里写 server.port=9000

然后将spring boot 项目打包

 <groupId>springboot</groupId>    <artifactId>springboot-mybatis</artifactId>    <version>1.0.1-SNAPSHOT</version>    <name>MiddleWareManage</name>    <packaging>jar</packaging>

在pom.xml文件里packaging 可以改WAR 或着JAR

<build>        <plugins>            <!--下面是将应用打包发布需要增加的插件-->            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <executions>                    <execution>                        <goals>                            <goal>repackage</goal>                        </goals>                    </execution>                </executions>            </plugin>        </plugins>    </build>

然后这里要设置一下打包
然后终端输入命令

mvn package

它会在

Building jar: E:\middlewareManage\target\springboot-mybatis-1.0.1-SNAPSHOT.jar

然后这就是你打好的包

然后上传到服务器上面

我用的secureCRT 上传用的是rz命令,它会自动跳一个选择文件窗口,你选择上传就好了

上传好了之后开始运行,

我一开始才用的是

java -jar spring-boot-1.0-SNAPSHOT.jar

这种方式, 发现可以运行的, 但是当我关掉终端的时候这个程序就停止了.
可恨, 然后当然是搜索如何让程序在后台运行,要一直运行的那种,不受到程序就不关的那种

结果发现.用nohup ,或者& 的方法就可以

java -jar spring-boot-1.0-SNAPSHOT.jar > runLog.file 2>&1 &

更新,发现用这个命令关闭终端还是会关掉进程所以

nohup java -jar springboot-mybatis-1.0.1-SNAPSHOT.jar > runLog.file 2>&1 &

用nohup命令就好
spring-boot-1.0-SNAPSHOT.jar是你的 包名

然后这个runLog.file 是你运行时记录的日志

tail -f 100 runLog.file 

查看实时滚动的数据

vi runLog.file 

vim 编辑器就不多说了

:$ 跳到最后

:wq 保存退出

:q! 强制退出

ctrl+F 往前一页

ctrl+B 往后一页

INS//insert 启用编辑

不是编辑模式下双击D键 删除该行

我想关掉后台运行的 Spring Boot 的服务 我该怎么做呢:

ps aux | grep spring | xargs kill -9

ps aux 是找出现在所有运行的进程
grep spring 是找出这些进程中名字是带有spring 字样的
xargs 将这个前面找到的名字传给后面这个kill -9这个命令
kill -9 就是强制删除进程了.

好了今天就说这么多吧, 刚得到消息..这个管理器不是那么简单的,会有很多中间件来请求我,我听到这个想法的第一个反应是DDOS攻击?? 我总算开始要用多线程来解决问题了.
希望别出错..

阅读全文
1 0
原创粉丝点击