写个Alfred Workflow实现一键切换Maven设定

因为公司项目需要使用公司的内部Maven资源,在家里并不需要,这样来回切换设置,很耗时。本着自动化的思想,考虑做个脚本来切换源。

脚本化-初步方案

在网上看到一位道友的文章-脚本切换,给了启发。这里贴下脚本化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

base_dir=~/.m2
setting_home=settings_home.xml
setting_work=settings_work.xml

PS3='Please enter the number of your choice: '
options=("home" "work")
select opt in "${options[@]}"
do
case $opt in
"home")
ln -sfn ${base_dir}/${setting_home} ${base_dir}/settings.xml
echo "Switched setting.xml to home!"
break
;;
"work")
ln -sfn ${base_dir}/${setting_work} ${base_dir}/settings.xml
echo "Switched setting.xml to work!"
break
;;

esac
done

如上,即可实现交互式执行脚本来做切换。但这种方案还是需要每次执行下脚本。
有办法做到一键切换吗?有的!Alfred就可以。

打造Alfred Workflow-进阶方案

如何做呢?

添加input keyword

添加list filter

添加脚本执行

针对上面的脚本,进行下改进。

1
2
3
4
5
6
7
8
9
10
base_dir=~/.m2
setting_home=settings_home.xml
setting_work=setting_work.xml

if [ "{query}" == "home" ];
then
ln -sfn ${base_dir}/${setting_home} ${base_dir}/settings.xml
else
ln -sfn ${base_dir}/${setting_work} ${base_dir}/settings.xml
fi

mvn setting默认配置

这里贴下maven默认的settings.xml配置
戳这里

添加notification

为了提升体验,每次切换成功后,通知下。

最终效果

到这里,我们就可以做到一键切换Maven设定了。完美。

参考文档