上周六参加 「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,是该大力提倡。 :-)