自制Spring大神 Josh Long 同款命令行工具,值得拥有

先来一张大神萌照。

上周六参加 「SpringOne TOUR」 大会,会上大神  Josh Long 现场代码演示 Spring 的响应式设计以及 Bootiful Test

每次都是从0开始,在 start.spring.io 上选择相应要使用的依赖模块之后,在本地IDEA 中打开开始一步步完善功能。演讲的风格、Live Code 中技术细节的推进,中间各种细节展示,内容相当的赞,受益匪浅。

比如在演示「Bootiful Test」的时候,先从我们熟悉的最原始的 Spring 单测写起,中间各种 Mock,空指针问题处理,到最后的简洁。让听众能自然感受到从一大堆代码写单测,过渡到Spring 的 Bootiful 风格的 CONTRACT 单测,对比会更强烈。

在演示过程中,我们见识到了 Josh 的代码编写,双手如飞,相当的流畅。
除此之外,在从 start.sping.io 中生成了 SpringBoot 项目结构文件之后,Josh 在本地命令行直接输入一个命令,瞬间在 IDEA 里把刚才这个项目就打开了,让人相当的惊叹。

会后,我在网上各种搜索那个命令都没找到。确定是个自定义命令无疑了。就琢磨着自己也在本地模仿着写一个。

如何通过 IDEA 启动项目

首先想到的是通过 IDEA 导入项目。在此之前,我一般是通过这样的操作路径:
File -> New -> Module from Existing Sources ...

想要在命令行中导入工程,就必须要命令行可以启动 IDEA。本以为将 IDEA 的可执行文件做为入口,后面传参数,后来各种搜索之后,发现 IDEA 里有一个功能,可以生成命令行可以执行的命令
具体在这里:
Tools -> Create Command-Line Launcher...

选这个之后,将其保存到本地。假设我们保存到本地的命令可执行文件为「idea」
然后在某个 maven 项目目录下,执行 idea pom.xml 
此时,当前项目就会被IDEA做为 project 打开。

命令行解压项目

这一步解决之后。第二是网站下载好的项目压缩包,通过命令解决,这个倒比较好解决,Linux/Mac 命令都直接支持, unzip、tar 都可以直接一个命令解压。

一个命令解压项目并导入 IDEA

有了第一步、第二步之后,这里「解压并打开应用」就是个二合一的操作。
写一个 shell 脚本,将上面的两个命令合并。 Josh 当时的命令是uao,我们也起这样一个名字「uao.sh」。
内容类似这样:

 !/bin/sh
 file_name=$1
 unzip $file_name
 echo "filename: ${file_name%.*}"
 dir_name=${file_name%.*}
idea $dir_name/pom.xml

之后,将上述命令添加到.bash_profile,使其成为环境变量即可,内容如下:
alias uao='cd ~/study && sh uao.sh
之后记得 source 一下,使其生效。

现场演讲时,有一位 Speaker 自诩为「Lazy Programmer」,这种通过自造命令来简化烦琐无谓的操作,让自己的时间用在更有价值的地方,这种 Lazy,是该大力提倡。 :-)


题图来源于 SpringOne 大会现场摄影师作品,版本归所有方,如需要使用请联系 Pivotal。

关注『 Tomcat那些事儿  』 ,发现更多精彩文章!了解各种常见问题背后的原理与答案。深入源码,分析细节,内容原创,欢迎关注。

                       转发是最大的支持,谢谢

更多精彩内容:

一台机器上安装多个Tomcat 的原理(回复001)

监控Tomcat中的各种数据 (回复002)

启动Tomcat的安全机制(回复003)

乱码问题的原理及解决方式(回复007)

Tomcat 日志工作原理及配置(回复011)

web.xml 解析实现(回复 012)

线程池的原理( 回复 014)

Tomcat 的集群搭建原理与实现 (回复 015)

类加载器的原理 (回复 016)

类找不到等问题 (回复 017)

代码的热替换实现(回复 018)

Tomcat 进程自动退出问题 (回复 019)

为什么总是返回404? (回复 020)

...

PS: 对于一些 Tomcat常见问题,在公众号的【常见问题】菜单中,有需要的朋友欢迎关注查看。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值