有没有办法让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" />