有没有办法让Linux和Windows操作系统的机器名作为ant属性。ant机器名属性
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。
您可以为此使用环境变量$ HOSTNAME(UNIX)和%COMPUTERNAME%(Windows)。您可以检查是否已经定义了环境变量HOSTNAME,如果没有,则可以使用环境变量COMPUTERNAME(假设已定义)。作为后备,您可以使用“未知”。
将Unix的值复制到Windows版本中。然后你可以使用$ {env.COMPUTERNAME}。
<property name="env.COMPUTERNAME" value="${env.HOSTNAME}"/>
<exec executable="hostname" outputproperty="computer.hostname"/>
将在Linux和Windows
我认为这样更可靠。当我们使用COMPUTERNAME时,在某些机器上,该值的外壳与机器名称的外壳不匹配。 '主机名'迄今一直匹配。 – fnCzar 2010-08-28 19:10:39
+1。我尝试了接受的答案,但失败了。这一个很好。谢谢! – 2011-02-05 00:48:48
我会写一个自定义的Ant任务工作。
一旦你开始写你自己的任务,你会发现蚂蚁获得更多的乐趣和易于使用。你不需要难以理解的奇怪解决方案。
一旦任务被写你只是这样做:
<my:hostname property"hostname" />
正确的方式找到本地机器的主机名是使用Ant的HostInfo
任务。这将适用于所有平台,并由Ant本地支持。
<hostinfo prefix="host." />
<echo message="My hostname is '${host.NAME}'" />
- 1. ANT阅读性能,使用Ant属性
- 2. 具有属性部分名称属性的Ant目标
- 3. Ant继承Maven属性
- 4. Ant loadfile覆盖属性
- 5. 使用Ant日期属性?
- 6. 覆盖ANT属性文件
- 7. Ant:引用动态属性
- 8. 如何重置ANT属性?
- 9. 属性中的嵌套属性(在属性中)(ant to maven migration)
- 10. Ant通过xml文件中的属性名称替换属性值
- 11. 如何作为ANT属性返回文件名?
- 12. 从Ant属性中常规使用SQL数据库schema名称
- 13. Ant对属性名称有什么要求?
- 14. 是否可以在ant中指定属性值作为属性?
- 15. 如何使用.properties文件更改ant属性位置属性
- 16. Ant属性全局到全局属性空间
- 17. 属性文件中列表中的Ant宏属性值
- 18. 通过“属性任务”使用Ant属性文件的原因
- 19. Ant属性可以解析其他属性吗?
- 20. 如何将Ant属性转换为Ant资源?
- 21. ANT如何在Ant 1.8中使用词汇范围属性?
- 22. 当ant脚本运行时,哪个Ant属性包含CWD?
- 23. 从定制Ant任务改写ant属性
- 24. Sonarqube ant IllegalStateException;不拾取属性文件
- 25. Ant属性设置不正确?
- 26. Ant属性评估不正确?
- 27. Ant的全局属性eclipse中的WEBLOGIC_HOME
- 28. 在Ant中读取属性值
- 29. Ant属性文件替换值问题
- 30. ANT - 你如何改变src.dir属性?
很好的解决方法 – Michael 2012-10-15 13:19:00