前提:买的云服务器和宝塔上的防火墙端口记得自己开放了
1.直接上结论,springboot项目直接添加jar包即可运行,因为它内置的有tomcat
2.本地tomcat部署的时候,一定要用标准的java环境变量JAVA_HOME那样,不能直接配置在path里面,要不然启动文件打不开,会一闪而过。打开之后访问的路径是http://127.0.0.1:8080/tom-1.0-SNAPSHOT/,切记,后面的是war包名,而不是项目名。
3.普通java项目的部署
第一种方法:
第二种方法:
但我还有几个问题:
0.springboot那个空格的问题网上有答案,如果不写空格,系统以为我们要运行的文件是xxx.jar–server.port=xxx 而不是 xxx.jar(我们运行jar会执行java -jar xxx.jar --server.port=xxxx)
因为宝塔面板没有给我们自动加上才导致了这个错误。
正式问题:
1,springboot项目部署到哪里了,难道服务器不用解压jar包就可以直接访问运行吗?
2.关于我为什么分两次介绍普通项目部署,因为如果用第一种的话,我本机就这一个域名,部署一次就没了,我还想部署其他网站的时候还得把它删了,所以那个域名我得写成自定义的样子。不过因为域名不存在,所以还是用的本机地址访问。所以,我的疑问是,为什么第二种方法不能一键部署,还得我找到它生成的tomcat的webapps文件夹手动部署?
已知:第一种部署的时候,它的webapps文件下并没有war包内的东西。访问到的资源也是我第一次随便建立的文件夹里的东西(我把刚开始建的文件夹里面的东西删了第一种方式就访问不到了)
3.本地运行tomcat会一闪而过(打开bin\startup.bat),而我确实有jdk(只不过是直接配在path里的,jdk8的bin目录),我按照JAVA_HOME那样配置后才可以正常运行,为什么?而且我用idea的tomcat7-maven-plugin插件就可以直接运行,我自己在idea上配个本地的tomcat也可以运行。
2022/10/1
我又回来总结了,三种方案解决:
1.部署项目可以直接用一个tomcat,在他的webapps目录下面放一堆的项目就好了。通过配置文件配置端口,通过 IP地址+端口+项目名 来访问项目资源就好了。
2.如果不想用端口的形式还可以在nginx上做服务转发,就可以通过 IP地址+项目名 来访问不同的项目了。
3.同样的道理,用多个tomcat访问:IP地址+项目端口,或者用nginx对多个tomcat做代理:IP地址+项目名