ant机器名称属性

有没有办法让Linux和Windows操作系统的机器名称作为ant属性。

在Windows上,主机名在环境变量“COMPUTERNAME”中,在Linux上,环境变量是“HOSTNAME”。 因为蚂蚁属性是不可变的,像下面这样应该工作:

<property environment="env"/> <property name="env.HOSTNAME" value="${env.COMPUTERNAME}"/> <echo message="hostname = ${env.HOSTNAME}"/> 

即导入环境作为以env为前缀的属性。 然后将env.HOSTNAME设置为env.COMPUTERNAME的值,除非已设置env.HOSTNAME,在这种情况下,第二行将不起作用。 之后使用主机名所在的env.HOSTNAME。

 <exec executable="hostname" outputproperty="computer.hostname"/> 

将在Linux和Windows上工作

找到本地主机名的正确方法是使用Ant的HostInfo任务。 这将在所有平台上运行,并由Ant本地支持。

 <hostinfo prefix="host." /> <echo message="My hostname is '${host.NAME}'" /> 

将Unix的值复制到Windows版本中。 然后你可以使用$ {env.COMPUTERNAME}。

 <property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/> 

您可以使用环境变量$ HOSTNAME(UNIX)和%COMPUTERNAME%(Windows)。 您可以检查是否已经定义了环境变量HOSTNAME,如果没有,则可以使用环境变量COMPUTERNAME(假设已定义)。 作为后备,您可以使用“未知”。

我会写一个自定义的Ant任务。

一旦你开始写你自己的任务,你会发现蚂蚁获得更多的乐趣和易于使用。 你不需要难以理解的奇怪的解决方案。

一旦任务被写入,您只需要执行如下操作:

 <my:hostname property"hostname" />