Установите системное свойство с муравьем
У меня есть скрипт ant, у которого есть taskdef
и задача создает https-соединение с Интернетом, и что-то taskdef
на то, что материал SSL неправильный. Таким образом, я хочу установить системное свойство javax.net.debug=all
чтобы получить дополнительную информацию.
В java я сделал бы это с помощью опции -D
, но в ant это используется для свойств ant, которые не совпадают с системным свойством.
Если бы это не было taskdef
а вместо java
задачи, я мог бы использовать свойство sysproperty
, но это не java
-task.
Googling для этого является разочаровывающим, потому что свойства и свойства ant в ant настолько похожи, что большинство результатов поиска о других (или о java
-task).
Очевидно, что я не единственный с проблемой, но другие вопросы, которые я нашел (например, здесь), остались без ответа или пошли на взломы (как здесь).
Ответы
Ответ 1
Одним из способов установки такого свойства является системная переменная ANT_OPTS
. Вы должны быть очень осторожны, чтобы не просто пересказывать ответы на Google, которые утверждают, что параметры могут быть установлены таким образом, потому что это звучит так, как будто не то, что он делает:
В документации говорится:
ANT_OPTS - аргументы командной строки, которые должны быть переданы в JVM. Например, вы можете определить системные свойства или задать максимальный размер кучи Java здесь.
Кто, что ожидал этого? ANT_OPTS - это опции для JVM, а не для муравьев, как это предлагает название. ANT_ARGS
который используется для опций ant, называется ANT_ARGS
.
Теперь я могу запустить муравей вроде этого: ANT_OPTS="-Djavax.net.debug=all" ant myTarget
и может видеть тонны выхода журнала.
(Однако это оставляет вопрос открытым, можно ли установить такую переменную с помощью XML).
Ответ 2
Вы можете объявить свойства системы в xml с помощью <sysproperty key="key" value="value"/>
.
http://www.java2s.com/Code/Java/Ant/SetsystempropertiesinAntbuildscript.htm