使用ant设置系统属性

时间:2014-01-15 20:54:10

标签: ant system-properties

我有一个蚂蚁脚本,其中有一个taskdef,该任务会创建一个https互联网连接,而某些SSL内容是错误的。因此,我想设置系统属性javax.net.debug=all以获取更多信息。

在java中我会使用-D选项执行此操作,但在ant中,这用于与系统属性不同的ant属性。

如果这不是taskdef而是java任务,我可以使用sysproperty属性,但它不是java - 任务。

谷歌搜索这一点令人沮丧地复杂,因为ant中的ant属性和系统属性非常相似,大多数搜索结果都是关于另一个(或关于java - 任务)。

显然我不是唯一一个有这个问题的人,但是我发现的其他人的问题(like here)没有得到答复或者是黑客攻击(如here)。

3 个答案:

答案 0 :(得分:10)

设置此类属性的一种方法是ANT_OPTS系统变量。你必须非常小心,不要简单地浏览谷歌上的答案,说明选项可以这样设置,因为它听起来不像它的作用:

documentation说:

  

ANT_OPTS - 应传递给JVM的命令行参数。   例如,您可以定义系统属性或设置最大Java   这里的堆大小。

有什么期望的? ANT_OPTS是JVM的选项,而不是名称所暗示的ant。用于ant选项的var称为ANT_ARGS

现在我可以像这样启动ant:ANT_OPTS="-Djavax.net.debug=all" ant myTarget并且可以看到大量的日志输出。

(但是这会让问题在于是否可以使用XML设置这样的变量)。

答案 1 :(得分:1)

您可以使用<sysproperty key="key" value="value"/>在xml中声明系统属性。

http://www.java2s.com/Code/Java/Ant/SetsystempropertiesinAntbuildscript.htm

答案 2 :(得分:0)

您可以使用脚本:

<script language="javascript">      
    java.lang.System.setProperty('myKey', 'myValue');
</script>