设置PATH环境变量如何PATH环境变量从Ant脚本如何从Ant脚本
如何从Ant脚本
回答
设置要通过蚂蚁设置环境变量,尝试调用exec任务,并设置在命令行中值。顺便说一下,我没有尝试过,但它应该可以工作。
这是否为<exec>
任务?
您可以设置环境变量,当您运行<exec>
任务:
<exec executable="${my.command}">
<env key="foo" value="bar"/>
<arg line="some value"/>
</exec>
您可以使用<property environment="env"/>
拓展的路径:
<property environment="env"/>
<exec executable="${my.command}">
<env key="PATH" value="${env.PATH}:${my.directory}"/>
</exec>
如果这是一个需要环境的一些自定义任务变量,但不允许你在任务中设置环境变量,如果没有设置,你可以尝试设置它:
<property environment="env"/>
<property name="env.foo" value="bar!bar"/>
这威力一套名为foo
到bar!bar!
值的环境变量。我记得有关此事的一些信息,但无法使其发挥作用。
你可以做的另一件事是让一个ant脚本执行另一个脚本,并让第一个ant脚本设置环境值。当我必须设置ANT_OPT
时,我这样做了。
您可以使用setx命令设置环境变量。
对于SETX命令的帮助参考http://ss64.com/nt/setx.html
<exec executable="setx.exe">
<arg line="Path C:\jdk1.5.0_12\bin"/>
<arg line="/m"/>
</exec>
从setx文档:“2)在本地系统上,由此工具创建或修改的变量将在未来的命令窗口中可用,但在当前的CMD.exe命令窗口中不可用。” 所以这不会作为问题的解决方案,除非用户想要打开一个新的shell。 – Jerry 2013-04-24 14:59:42
在蚂蚁,性质是不变的,所以上述大卫的建议:
<property name="env.foo" value="bar!bar"/>
将无法正常工作。
但变量是可变的,所以此工程:
<variable name="env.foo" value="bar!bar"/>
这干得不错,但似乎是一个卑鄙的伎俩。
所以为了您的具体问题,尝试
<variable name="env.PATH" value="some:custom:value"/>
这是一个很好的答案,但请注意,变量任务不是标准Ant分布的一部分;你必须安装ant-contrib。 – 2013-08-14 16:45:27
此外,这实际上不会更新Windows环境变量只是ant属性env.PATH – Clintm 2015-06-03 17:57:46
,因为我没有足够的声誉在<variable ...
建议,回答我的评论发表评论...: -/
在(”更新“)ant-contrib(额外的ANT包)任务是不叫<variable ...
但是<var ...
!
(但因为我想的env.*
(由<property environment="env" ... />
任务)Java属性/变量创建操作仅适用于任务/进程评估这些Java性能,这是有关它没有为我工作反正不会自动“同步回”到OS环境变量)
,我发现它的工作原理是报价变量
<exec executable="setx">
<arg line="Path "${env.Path};c:\testPath"" />
<arg line="/m" />
</exec>
的价值您可以使用扩展的路径:
然后你就可以从ant
执行例如sh
到export
环境变量:
<property environment="env"/>
<exec executable="sh">
<arg value="-c"/>
<arg value="export PATH=${env.Path}:${myPath}"/>
</exec>
或执行你的命令,并设置env
与value
,像这样:
<property environment="env"/>
<exec executable="${your.command}">
<env key="PATH" value="${env.PATH}:${your.directory}"/>
</exec>
- 1. 如何编写Ant脚本?
- 2. 从SCONS运行ANT脚本
- 3. 的Android如何使用ant脚本
- 4. Ant构建脚本
- 5. 如何在ant脚本中获取ant任务的返回码?
- 6. 从java类执行ant脚本
- 7. 从ant脚本执行java类文件
- 8. 访问platform.properties从NBI ant脚本
- 9. 从Ant脚本执行游戏
- 10. ant脚本在运行ant脚本时忽略xml
- 11. html5boilplate + ant构建脚本+咖啡脚本
- 12. 将ant脚本转换为gradle脚本
- 13. 如何在Mac上从ant启动shell脚本?
- 14. 如何从Ant脚本执行VBScript文件?
- 15. 如何使用ant脚本从文件逐行读取数据?
- 16. 如何从ant脚本中删除java System.out.println
- 17. FreeBSD Ant javax脚本引擎
- 18. mq fte和ant脚本
- 19. Ant脚本中的“Runas”
- 20. Ant脚本执行失败
- 21. JUNIT ant脚本中的ClassNotFoundException
- 22. 在Ant构建脚本
- 23. EXEC ARGS(值)由Ant脚本
- 24. 硒脚本的Ant任务
- 25. Ant构建脚本问题
- 26. 问题ant脚本性能
- 27. 如果别人对ant脚本
- 28. Ant脚本如果任何迭代失败,如何继续
- 29. 如何使用ANT脚本检查JBOSS版本
- 30. 如果脚本被取消,如何终止从Ant任务启动的进程?
第一种解决方案适用于我。我正在运行RHEL 5.4,并且必须在需要它的ant exec任务中设置我的PYTHONPATH。 – Alessandro 2013-02-14 13:44:44
在我的机器上(Win7),它必须是env.Path,而不是env.PATH。 – 2013-04-19 19:37:10
@NateGlenn在Unix和Java中(因此也是在Ant中),环境变量名称区分大小写。 'PATH'与'Path'和'path'不同。在Windows中,环境变量名称不区分大小写。因此,'Path',''Path'和'PATH'都是一样的,但是当你使用Ant时,它们代表三个不同的变量。在Unix中,它始终是'PATH'。在Windows中,我甚至不确定它是否从机器到机器都是一样的。您可以使用' '任务来查看您的系统对环境变量所做的工作。 –
2013-04-21 22:36:17