gradle获取shell输出并使用

前言

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

1.shell获取本地ip

#!/usr/bin/env bash
ifconfig |grep 192.168|cut -d ' ' -f2

"ifconfig |grep 192.168"会获得
"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中定义一个方法来获取输出
可以参考官网文档

def getIp() {
    def out = new ByteArrayOutputStream()
    exec {
        workingDir 'xxx'//getIp.sh所在目录,可以是绝对路径或相对路径
        commandLine './getIp.sh'
        standardOutput = out
    }
    return out.toString().trim()//trim()是必要的
}

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

ext {
    curIp = getIp()
}
//或者
def curIp = getIp()

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

posted @ 2020-01-09 16:28  氺灬丶丷  阅读(625)  评论(0编辑  收藏  举报