对于Linux和Windows操作系统,是否有办法将机器名称作为ant属性。
答案 0 :(得分:33)
<exec executable="hostname" outputproperty="computer.hostname"/>
将适用于linux和windows
答案 1 :(得分:31)
在Windows上,主机名位于环境变量“COMPUTERNAME”中,在Linux上,环境变量为“HOSTNAME”。因为ant属性是不可变的,所以类似下面的东西应该起作用:
<property environment="env"/>
<property name="env.HOSTNAME" value="${env.COMPUTERNAME}"/>
<echo message="hostname = ${env.HOSTNAME}"/>
即。将环境导入为以env为前缀的属性。然后将env.HOSTNAME设置为env.COMPUTERNAME的值,除非已经设置了env.HOSTNAME,在这种情况下第二行将不起作用。之后使用env.HOSTNAME,其中需要主机名。
答案 2 :(得分:8)
查找本地计算机主机名的正确方法是使用Ant的HostInfo
任务。这将适用于所有平台,并由Ant本身支持。
<hostinfo prefix="host." />
<echo message="My hostname is '${host.NAME}'" />
答案 3 :(得分:3)
将Unix的值复制到Windows版本中。然后你可以使用$ {env.COMPUTERNAME}。
<property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/>
答案 4 :(得分:2)
您可以使用环境变量$ HOSTNAME(UNIX)和%COMPUTERNAME%(Windows)。您可以检查是否已定义环境变量HOSTNAME,如果没有,则可以使用环境变量COMPUTERNAME(假设已定义)。作为后备,您可以使用“未知”。
答案 5 :(得分:-1)
我会编写一个自定义Ant任务。
一旦你开始编写自己的任务,你会发现Ant变得更有趣,更容易使用。您不需要难以理解的奇怪解决方案。
编写任务后,您可以执行以下操作:
<my:hostname property"hostname" />