本文共 4418 字,大约阅读时间需要 14 分钟。
接触spring boot有一段时间了,但是一直未打包部署过spring boot项目,因为其内置tomcat,所以打包部署方式有所不同。还有ngrok,是一个类似于花生壳的内网穿透神器,本文也将介绍它的用法。
1、打jar包:
(1)、在pom.xml中可以配置jar包的名字:love2 org.springframework.boot spring-boot-maven-plugin
等下生成jar包的名字就叫做love2。
(2)、clean一下项目:
选中按项目run as maven clean
。 (3)、打包项目:
选中项目run as maven install
。 (4)、执行java -jar:
执行第三步控制台输出success后,在本地项目根目录的target目录下就有love2.jar。java jar love2.jar
: (5)、访问项目:
启动成功后,访问localhost:8082/baby
,本项目配置了端口为8082,baby是本项目路由。 (6)、部署到Linux服务器中:
部署到服务器中很简单,只需要把love2.jar上传到服务器,然后执行nohup java -jar love2.jar &
即可。&
表示后台运行。 (7)、访问服务器上的项目:
2、打war包:
打成jar包很方便,因为内置了tomcat,所以服务器上也无需安装tomcat。正因为如此,所以如果要同时启动多个spring boot项目项目,那就得配置不同的端口,比如一个8080,一个8081,一个8082……。但是这样也不好,因为接下来的ngrok免费版只能解析一个端口,即如果解析了8080那就不能解析其他的了。所以可以打成war包,全都运行在8080端口的tomcat服务器下,那么ngrok只解析8080端口就行了。接下来就看看如何打成war包:(1)、修改pom.xml:
打包方式由jar改成war。
com.zhu love2 0.0.1-SNAPSHOT war
添加一个依赖:
org.springframework.boot spring-boot-starter-tomcat provided
(2)、修改启动类:
启动类继承SpringBootServletInitializer并重写configure方法。@SpringBootApplicationpublic class Love2Application extends SpringBootServletInitializer{ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // TODO Auto-generated method stub return builder.sources(Love2Application.class); } public static void main(String[] args) { SpringApplication.run(Love2Application.class, args); }}
(3)、进行打包:
同样是run as maven install
就行了,在项目根目录的target目录下就会生成一个war包,把war包上传至服务器tomcat的webapps目录下,过几秒就会自动解压,然后就可以访问了。 我们都知道直接通过服务器的IP访问项目不太安全,买域名要备案又有点麻烦,又或者根本没买服务器,但是项目又想让别人也能访问,那么,ngrok就可以帮到你,接下来看看ngrok的使用方法。
1、ngrok简介:
ngrok就是一个内网穿透工具,说内网穿透可能还有点不明白,说白了就是一个可以把localhost
转成一个网址,从而让别人也能访问你本地项目的工具。 2、ngork在Windows中的使用:
(1)、进入官网下载:
(2)、下载后解压:
(3)、使用ngrok:
进入cmd窗口后,输入ngrok http 8082
: 3、ngrok在Linux中的使用:
在windows中使用是因为我们没买服务器又想让别人也能访问我们的项目,在Linux中使用是因为使用域名需要备案,有点麻烦,而我们又不想直接通过IP访问项目,因为把IP暴露出去不太安全。所以就可以通过ngrok来实现。
(1)、安装:
安装就不多说了,下载Linux版,然后用unzip命令解压即可。解压好后只有一个ngrok文件。(2)、使用:
在ngrok的解压目录下,执行./ngrok http 8082
,8082为项目的端口。执行成功如下图: (3)、后台运行:
让ngrok后台运行,可以按如下步骤执行: 安装screen:yum install screen
开启新窗口:
screen
运行ngrok:
./ngrok http 8082
返回到主终端:
ctrl+A+D
返回到ngrok的screen窗口:
screen -ls
screen -r xxxxx
screen -S xxxx -X quit
就可退出xxxx的screen。 (4)、注册ngrok账号:
上面3个步骤就可以使用ngrok了,但是当我第二天访问这个项目时就出错了,错误如下:回到服务器,在ngrok的解压目录下执行./ngrok authtoken xxxx
,xxxx就是刚才在antu页面复制的token。
上面介绍了ngrok的使用,接下来看看sunny ngrok的使用。其实我也不太清楚ngrok和sunny ngrok的关系,但是经个人测试sunny ngrok访问更快,而且可以自定义访问前缀。正如上面所示ngrok的前缀是一串随机生成的字符串,而sunny ngrok可以自定义访问前缀。
1、注册:
进入sunny ngrok进行注册。2、开通隧道:
注册登录后,点击 隧道管理 -----> 开通隧道,选择购买如下图的免费服务器:3、安装客户端:
开通成功后,就会生成隧道id,复制好隧道id,等下要用。4、使用sunny ngrok:
在sunny ngrok 解压根目录下执行如下命令:./sunny clientid xxxxxx
xxxxxx就是刚才在网页复制的id。这样就开启了sunny ngrok。开启后,回到网页点击隧道管理,再编辑,还可以绑定自己购买的域名。 这时所有运行在8080端口的tomcat下的项目都可以通过这个自己购买的域名+项目路由进行访问。同样也可以用screen让其在后台运行。
spring boot项目打包部署较为简单,maven install,然后把打好的jar包上传到服务器用nohup java -jar命令启动即可。至于ngrok的使用,本文也详细介绍了在windows和centos中用法,步骤也不复杂,反正听说比花生壳更简单,而sunny ngrok似乎比ngrok更加强大,因为个人感觉访问速度更快,而且可以自定义前缀,比起ngrok的一串随机生成的字符串作为前缀,总更好看些。用法也不复杂,你值得拥有!
转载地址:http://aexym.baihongyu.com/