我有一个build.gradle任务,它像我的dev框上的冠军一样工作,生成了一个属性文件,该文件记录了生成生成的机器的名称。逻辑很简单…
def hostname = InetAddress.getLocalHost().getHostName();
在我的开发箱中,这总是产生与bash shell中的主机名相同的值。
bobk-mbp:DM_Server bobk$ hostname bobk-mbp.local
但是,在我们的jenkins CI服务器上,bash主机名返回一件事,但是我对InetAddress.getLocalHost()。getHostName()的调用;返回其他内容。在jenkins机器上需要进行哪些更改才能使这两个返回相同的值?
假设您使用的是Linux,则从o / s执行的hostname命令将返回内核的已配置主机名。
InetAddress.getHostName()使用操作系统中配置的命名服务(DNS)对服务器的IP地址进行反向查找。
如果需要操作系统所理解的主机名,那么通过System.getenv从环境变量获取主机名可能是最简单的选择。这不是一种完全健壮的方法,但是无需深入研究网络或系统管理员就可以了。