В постах блога Java и Ant Properties Refresher и Ant <echoproperties /> Task я писал о том, как возможность увидеть, как свойства видятся при сборке Ant, может быть полезна для лучшего понимания этой сборки. Часто бывает так, что было бы полезно увидеть различные пути, используемые в сборке, так как сборка их видит, особенно если пути составлены из других путей и фрагментов из других файлов сборки. К счастью, как описано в потоке Ant StackOverflow Ant: как отобразить переменную пути класса в файл , это легко сделать с помощью задачи Ant PathConvert .
Следующий фрагмент XML представляет собой очень простой файл сборки Ant, который демонстрирует использование <pathconvert>
для отображения содержимого пути Ant с помощью обычных механизмов, используемых для отображения свойств Ant.
build-show-paths.xml: Ant build.xml Использование pathconvert
01
02
03
04
05
06
07
08
09
10
11
12
13
|
< project name = "ShowPaths" default = "showPaths" basedir = "." > < path id = "classpath" > < pathelement path = "C:\groovy-2.4.0\lib" /> < pathelement location = "C:\lib\tika-1.7\tika-app-1.7.jar" /> </ path > < target name = "showPaths" > < pathconvert property = "classpath.path" refid = "classpath" /> < echo message = "classpath = ${classpath.path}" /> </ target > </ project > |
Приведенный выше пример простого файла сборки Ant создает путь Ant с именем «classpath». Затем он использует задачу pathconvert
для создания нового свойства («classpath.path»), которое содержит значение, хранящееся в пути «classpath». После этого свойство «classpath.path» может отображать свое значение с помощью задачи эха Ant, как показано в разделе «Обновление свойств Java и Ant ».
При отладке проблем со сборками Ant часто полезно использовать Ant -verbose
. Однако иногда -verbose
является более тяжелым решением, чем на самом деле требуется, и часто простая возможность легко определить, какие свойства и пути «видит» сборка Ant, может быть очень полезна при диагностике проблем сборки.
Ссылка: | Отображение путей в Ant от нашего партнера JCG Дастина Маркса в блоге Inspired by Actual Events . |