web项目打包部署总结

springboot项目打包部署,由于springboot内置tomcat,所以 springboot应用部署有两种方式: 1,打jar包运行; 2,打war包放到tomcat中运行

1:打jar包运行

   打jar包可以直接用Java -jar 命令运行;前后端分离项目在本地可以分别启动服务器启动,但是部署到Linux系统上时需要合二为一, 所以操作步骤是: 1,前端项目将后端IP链接配置改为linux服务器地址之后, 运行 npm run build 命令 构建好前端项目;2,将前端项目复制到后端项目的resource目录下的static 文件夹下,若果没有就创建一个(spring boot默认将static作为请前端静态文件根目录),之后运行后端打 jar包,在pom.xml文件里面配置打jar包还是war包;注意这里有两个小坑:打包可能会漏掉某些格式的配置文件,像一些二进制的静态文件直接打包可能会损坏,此时需要添加一些maven打包配置,配置如下:


            
                org.apache.maven.plugins
                maven-resources-plugin
                2.7
                    
                        
                        
                            woff
                            eot
                            ttf
                            svg
                            xls
                            xlsx
                        

                    
            

            
            
                org.springframework.boot
                spring-boot-maven-plugin
            

这样打好jar包就可以去linux部署了;  用xshell链接linux系统,,配置好Java及Java_home之后,在你想要部署的目录下 运行  rz 命令调起上传文件框,将jar包上传至linux系统,运行 nohup java -jar xxx.jar & 命令就可以后台运行你的web应用了; 之后会在当前文件夹下生成日志文件,tail nohup.out 命令查看日志,看看是否启动成功; 运行 ps -ef |grep java  查找java 进程 拿到pid 之后 运行 kill -9 pid  杀死进程就能停掉你的web项目

这种方式启动,停止都很方便,但是会带来其他问题,如果你的应用在运行期间动态生成了临时文件,然后还以路劲的形式去读取此文件时就会报 文件找不到异常,因为jar包是在内存中解压运行的,临时文件会生成到jar包里面,然后以路径的方式去访问时遇到jar包,由于其不是文件夹,所以会报错;此时如果项目有这种业务需求时,则可以考虑打war包运行,因为tomcat会先将其解压

2:打war包运行

这种方式就比较常见了,同样,前端build好项目之后,放到后台static目录下,后台打war包,同样为避免打包文件损坏或丢失问题,加上以下配置:

            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.2
                
                    ${java.version}
                    ${java.version}
                    true
                
            

            
            
                org.apache.maven.plugins
                maven-resources-plugin
                2.7
                    
                        
                        
                            woff
                            eot
                            ttf
                            svg
                            xls
                            xlsx
                        

                    
            

            
            
                org.apache.maven.plugins
                maven-war-plugin
                2.6
                
                    ${project.artifactId}
                    
                    true
                    
                    
                        
                            src/main/resources
                            WEB-INF/classes
                            true
                        
                    
                
            

打好war包之后,用xshell链接linux系统,,配置好Java及Java_home之后,运行  rz 命令调起上传文件框,将jar包上传至linux系统,找到tomcat所在 目录,,使用root用户 运行 sudo chmod -R 777 /xxx/xxx(tomcat所在目录)  命令;分配给 tomcat目录及其子目录 读写 以及执行 的权限  ; 在此之后将war包 放置 tomcat 的webapps目录下,之后启动 tomcat,,tomcat就会自动解压你的war包并运行你的项目,此时在浏览器 输入 服务器ip 加上tomcat端口,加上你的应用名加上首页(index.html)访问成功,则说明项目部署成功!  同样 ,运行 ps -ef |grep java  查找java 相关, tomcat 的进程 拿到pid 之后 运行 kill -9 pid  杀死进程就能停掉你的web项目

总结:打包会使某些二进制文件损坏这中问题还是头次遇到,特此记录下来; 另外打war包和jar包 看似差不多,却会因为 运行的方式不同而导致出现不同的问题,比如这次遇到的,若生成临时静态文件,并需要以路径的方式去读取时就出现文件找不到的问题,这就是打jar包导致的!

 

你可能感兴趣的:(linux部署项目)