我有一个蚂蚁脚本,其中有一个taskdef
,该任务会创建一个https互联网连接,而某些SSL内容是错误的。因此,我想设置系统属性javax.net.debug=all
以获取更多信息。
在java中我会使用-D
选项执行此操作,但在ant中,这用于与系统属性不同的ant属性。
如果这不是taskdef
而是java
任务,我可以使用sysproperty
属性,但它不是java
- 任务。
谷歌搜索这一点令人沮丧地复杂,因为ant中的ant属性和系统属性非常相似,大多数搜索结果都是关于另一个(或关于java
- 任务)。
显然我不是唯一一个有这个问题的人,但是我发现的其他人的问题(like here)没有得到答复或者是黑客攻击(如here)。
答案 0 :(得分:10)
设置此类属性的一种方法是ANT_OPTS
系统变量。你必须非常小心,不要简单地浏览谷歌上的答案,说明选项可以这样设置,因为它听起来不像它的作用:
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>