继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

springboot项目打包&ngrok的使用

慕虎7371278
关注TA
已关注
手记 1125
粉丝 201
获赞 871


前言:

接触spring boot有一段时间了,但是一直未打包部署过spring boot项目,因为其内置tomcat,所以打包部署方式有所不同。还有ngrok,是一个类似于花生壳的内网穿透神器,本文也将介绍它的用法。

一、springboot项目打包部署:

1、打jar包:
(1)、在pom.xml中可以配置jar包的名字:

    <build>
        <finalName>love2</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

等下生成jar包的名字就叫做love2。

(2)、clean一下项目:
选中按项目run as maven clean

(3)、打包项目:
选中项目run as maven install

(4)、执行java -jar:
执行第三步控制台输出success后,在本地项目根目录的target目录下就有love2.jar。

webp

image.png


love2.jar就是打包好的项目。我们先在本地启动一把,等下再看看Linux服务器上如何启动。
在cmd窗口进入love2.jar所在目录,然后执行java jar love2.jar

webp

image.png


(5)、访问项目:
启动成功后,访问localhost:8082/baby,本项目配置了端口为8082,baby是本项目路由。

webp

image.png


注意:配置8082端口是因为我Linux服务器上有一个8080端口的项目了,配置8082是为了等下使用ngrok的方便。


(6)、部署到Linux服务器中:
部署到服务器中很简单,只需要把love2.jar上传到服务器,然后执行nohup java -jar love2.jar &即可。&表示后台运行。

webp

image.png


(7)、访问服务器上的项目:

webp

image.png


2、打war包:
打成jar包很方便,因为内置了tomcat,所以服务器上也无需安装tomcat。正因为如此,所以如果要同时启动多个spring boot项目项目,那就得配置不同的端口,比如一个8080,一个8081,一个8082……。但是这样也不好,因为接下来的ngrok免费版只能解析一个端口,即如果解析了8080那就不能解析其他的了。所以可以打成war包,全都运行在8080端口的tomcat服务器下,那么ngrok只解析8080端口就行了。接下来就看看如何打成war包:

(1)、修改pom.xml:

打包方式由jar改成war。

    <groupId>com.zhu</groupId>
    <artifactId>love2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

添加一个依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

(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的使用方法。

二、ngrok的使用:

1、ngrok简介:
ngrok就是一个内网穿透工具,说内网穿透可能还有点不明白,说白了就是一个可以把localhost转成一个网址,从而让别人也能访问你本地项目的工具。

2、ngork在Windows中的使用:

(1)、进入官网下载:

webp

image.png


(2)、下载后解压:

webp

image.png


双击解压后的ngrok.exe,会自动进入cmd命令窗口。


(3)、使用ngrok:
进入cmd窗口后,输入ngrok http 8082

webp

image.png


然后别人的电脑或手机就可以通过上图中圈出的地址+项目路由访问到我们本地启动的love2那个项目。

webp

电脑访问


webp

手机访问


3、ngrok在Linux中的使用:

在windows中使用是因为我们没买服务器又想让别人也能访问我们的项目,在Linux中使用是因为使用域名需要备案,有点麻烦,而我们又不想直接通过IP访问项目,因为把IP暴露出去不太安全。所以就可以通过ngrok来实现。

(1)、安装:
安装就不多说了,下载Linux版,然后用unzip命令解压即可。解压好后只有一个ngrok文件。

webp

image.png


(2)、使用:
在ngrok的解压目录下,执行./ngrok http 8082,8082为项目的端口。执行成功如下图:

webp

image.png


在手机或电脑上访问图中圈出的地址+项目路由即可访问到项目。本人测试已通过,此处不再截图。


(3)、后台运行:
让ngrok后台运行,可以按如下步骤执行:
安装screen:
yum install screen

开启新窗口:
screen

运行ngrok:
./ngrok http 8082

返回到主终端:
ctrl+A+D

webp

image.png


这样就相当于让ngrok在后台运行了。


返回到ngrok的screen窗口:
screen -ls
screen -r xxxxx

webp

image.png


这样就可以返回到ngrok运行的窗口,按ctrl+C就可以关闭ngrok,按ctrl+A+D就可以后台运行,screen -S xxxx -X quit就可退出xxxx的screen。


(4)、注册ngrok账号:
上面3个步骤就可以使用ngrok了,但是当我第二天访问这个项目时就出错了,错误如下:

webp

image.png


意思就是没有注册账号就会限制使用的时长和绑定的个数。既然注册免费,那就注册一个。注册时如果一直提示failed to resolve captcha,那就用谷歌或GitHub账户登录。注册好后,在auth页面会你这个账户专属的token。

webp

image.png


回到服务器,在ngrok的解压目录下执行./ngrok authtoken xxxx,xxxx就是刚才在antu页面复制的token。

webp

image.png


这样就授权成功了,以后就不用再运行此命令了。再次使用ngrok,就不会受限了。



作者:贪挽懒月
链接:https://www.jianshu.com/p/034b7dd730a7


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP