前言

当我们的电脑在不同的局域网下会有不同的ip,而在gradle中又要配置ip的时候
(说的就是你nexus配置),每次手动改总觉得麻烦,因此有了本篇文章介绍如何偷懒!

1.shell获取本地ip

1
2
#!/usr/bin/env bash
ifconfig en0|grep 'inet '|cut -d ' ' -f2

“ifconfig |grep ‘inet ‘“会获得
“inet 192.168.0.103 netmask 0xffffff00 broadcast 192.168.0.255”
“cut -d ‘ ‘ -f2”表示以空格分开,然后获取第二个
也就是我们的目标192.168.0.103
ps:记得给shell 文件赋可执行权限:chmod +x getIp.sh

2.gradle 获取到shell的输出

gradle中定义一个方法来获取输出
可以参考官网文档

1
2
3
4
5
6
7
8
9
def getIp() {
def out = new ByteArrayOutputStream()
exec {
workingDir 'xxx'//getIp.sh所在目录,可以是绝对路径或相对路径
commandLine './getIp.sh'
standardOutput = out
}
return out.toString()
}

到这里我们就可以通过调用getIp()来获取本地ip了,如:

1
2
3
4
5
ext {
curIp = getIp().trim()
}
//或者
def curIp = getIp().trim()

更多文章,尽在个人博客
fork me on github