我们使用Spring Boot 2.0 创建好我们的项目后,我们一般需要打包,然后部署到服务器上。

打包步骤:

1. 选中项目,右键——> Open Module Settings.

2. 切换到Artifacts 选项卡下,点击+ 号

3. 点击+ 后,可以看到有很多选项,我们选择Jar, From modules with depedency

4. Main Class 文件浏览或者搜索找到我们的主函数,勾选copy to the out put directory and link via manifest.

Tips:需要测试类就勾选Include tests,我这里不需要,不勾选点击Ok.

5.然后点击Apply ,再点击OK

6. 这时候选中项目,然后点击顶部的菜单栏找到Build,应该可以看到Build Artifacts 不再是灰色了,这是我们要选中它。

7.点击后会弹出来这样一个对话框

8.我们点击Build,等待片刻就可以看到多了一个out文件夹

9. 到这里你可能神奇地发现,咦不对哈,我想要打包成一个单独的Jar包,怎么都解压打包到一个文件夹中了。

10. 我们现在就来解决这个问题

第一种方式:cmd中打开项目所在文件夹,然后执行这个清楚和打包命令即可

mvn clean package

第二种方式:(推荐这种,方便快捷)

选中Project ,然后点击右侧的Maven 菜单条, 展开Lifecycle

选中package ,点击运行按钮

Tips: 注意看target文件夹下最开始是没有*.jar 的

当执行完毕后,我们可以看到target 文件夹下多了一个*.jar的文件,这个就是我们想要的一个独立的可执行jar 包了。

我们把上面这个jar拿出来,复制到一个测试文件夹下

cmd打开后执行

java -jar swallow-security-scan-0.0.-SNAPSHOT.jar

Tips:按下Ctrl+C可以非常优雅地关闭我们的程序

这样就可以运行了,访问我们的网址

http://127.0.0.1:/

显示页面如图所示

当然本来到这里就可以结束了。

可作为极客来说,还想变得更完美点,让我们一起来写个脚本吧。

该脚本功能:执行我们的Spring Boot 应用程序后,打开某一个指定的网址

新建一个文本文件和刚才的jar 处于同一目录,修改格式为bat,内容如下所示:

run.bat

@echo off
start java -jar swallow-security-scan-0.0.-SNAPSHOT && start http://127.0.0.1:
@echo if you want to exit the application,please press ctrl + C in another console window
@pause

注意:运行后需要等待几秒,再次刷新页面就可以访问了。

Spring Boot 2.0 Intellij Idea 中图文详解打包成可执行Jar的更多相关文章

  1. MySQL 8.0.20 安装教程图文详解(windows 64位)

    MySQL 8.0.20 安装教程图文详解(windows 64位)  更新时间:2020年05月09日 15:09:04   转载 作者:瘦肉粥不加糖     这篇文章主要介绍了MySQL 8.0. ...

  2. MySQL8.0.20安装教程图文详解,MySQL8.0.20安装教程winodws10

    MySQL8.0.20安装教程图文详解,非常详细 一:mysql官网下载 https://dev.mysql.com/downloads/file/?id=494993 不用注册,直接下载就好 二:解 ...

  3. spring boot actuator端点高级进阶metris指标详解、git配置详解、自定义扩展详解

    https://www.cnblogs.com/duanxz/p/3508267.html 前言 接着上一篇<Springboot Actuator之一:执行器Actuator入门介绍>a ...

  4. Spring Boot 项目在 IntelliJ IDEA 中配置 DevTools 实现热部署(macOS 系统)

    要配置的内容: 1.Preference -> Build, Execution, Deployment -> Complier -> Build project automatic ...

  5. Spring Boot 整合 Mybatis 实现 Druid 多数据源详解

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考” 本文提纲一.多数据源的应用场景二.运行 sp ...

  6. Spring Boot 最核心的 3 个注解详解

    最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过.然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望 ...

  7. Spring Boot教程(十七)属性配置文件详解(2)

    通过命令行设置属性值 相信使用过一段时间Spring Boot的用户,一定知道这条命令:java -jar xxx.jar --server.port=8888,通过使用–server.port属性来 ...

  8. Spring Boot 系列:最新版优雅停机详解

    爱生活,爱编码,本文已收录架构技术专栏关注这个喜欢分享的地方. 开源项目: 分布式监控(Gitee GVP最有价值开源项目 ):https://gitee.com/sanjiankethree/cub ...

  9. Spring Boot 2.3 新特性优雅停机详解

    什么是优雅停机 先来一段简单的代码,如下: @RestController public class DemoController { @GetMapping("/demo") p ...

随机推荐

  1. C#.NET常见问题(FAQ)-如何生成release版本的程序,生成debug版本的程序

    除了右击项目在生成中配置改成Release还要在顶部切换成Release     更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetaohai1 ...

  2. 如何不使用pthread_cancel而杀死线程

    http://www.cnblogs.com/no7dw/archive/2012/09/27/2705847.html During the time I use standalone cross ...

  3. android实现六边形等不规则布局

    在去年广告机项目中,UI设计出一个比较华丽的UI,但是对于我来说无从下手,我试过view的叠加并设置外边距实现,虽然勉强可以实现,但是获取单击焦点是有很多问题: 效果图如下: 最后只有另外想办法:我对 ...

  4. Java实现根据输入的日期以及天数,获取此日期之后的天数的工作日

    public static void main(String[] args) { List<String> list = new ArrayList<String>();//节 ...

  5. taro 在components文件夹中 新建组件时,组件支持自定义命名,但是不能大写开头

    在components文件夹中 新建组件时,组件支持自定义命名,但是不能大写开头.否则会报错 错误写法: // 真实路径 import MinaMask from '../../components/ ...

  6. bzr登陆加密

    bzr提示:You have not informed bzr of your Launchpad ID, and you must do this towrite to Launchpad or a ...

  7. 从官方的BZR源安装avant-window-navigator

    资料来自: http://blog.163.com/azhai@126/blog/static/111056312008315842433/http://www.ibentu.org/2007/09/ ...

  8. opencv实现gamma灰阶检測

    简单介绍 本篇解说使用opencv来測试,表示camera gamma參数的灰阶卡图片指标:YA Block.DynamicRange.Gray Scale. 详细实现 实现代码 #include & ...

  9. maven Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4

      maven Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4 CreateTime--201 ...

  10. Jsp和session、request.getSession()

    request.getSession(false); 这段代码代表,如果没有和当前request关联的session则不创建session并且返回空 request.getSession(true); ...