12

我有一个 ant 脚本,它有一个taskdef并且任务创建一个 https 互联网连接,并且 SSL 的东西是错误的。因此,我想设置系统属性javax.net.debug=all以获取更多信息。

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

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

对此进行谷歌搜索非常复杂,因为 ant 中的 ant 属性和系统属性非常相似,以至于大多数搜索结果都是关于另一个(或关于java-task)的。

显然我不是唯一一个有问题的人,但是我发现的其他人的问题(比如这里)没有得到解答或者被破解了(比如这里)。

4

3 回答 3

13

设置此类属性的一种方法是ANT_OPTS系统变量。您必须非常小心,不要简单地浏览 google 上声明选项可以这样设置的答案,因为这听起来很像它所做的事情:

文档说:

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

谁料到了?ANT_OPTS 是 JVM 的选项,而不是顾名思义的 ant 选项。用于 ant 选项的 var 称为ANT_ARGS.

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

(然而,这样一个变量是否可以使用 XML 设置仍然存在问题)。

于 2014-01-15T20:54:09.960 回答
1

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

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

于 2014-05-08T21:01:15.727 回答
0

您可以使用脚本:

<script language="javascript">      
    java.lang.System.setProperty('myKey', 'myValue');
</script>
于 2021-02-01T18:36:56.400 回答