Автоматизированный процесс сборки с помощью Ant — одна из самых важных вещей, необходимых в любом процессе CI. Ant — это инструмент для сборки для многих проектов Enterprise Java. Это XML-файл, обычно называемый build.xml , который описывает зависимости проекта. В начале любого проекта этот файл сборки будет где-то около 70-80 строк, который будет включать цели для компиляции исходного кода и тестов, выполнения этих тестов, создания библиотек и так далее …
Но, по мере роста проекта, этот файл также увеличивается и становится таким большим, как несколько тысяч строк; что сложно и сложно поддерживать. В этот момент вы можете решить провести рефакторинг файла сборки, но прежде чем это сделать, было бы действительно полезно, если бы вы имели более широкую картину этих нескольких тысяч строк файла XML, верно? Когда пословица гласит: «Картинка стоит тысячи слов», я покажу вам, как эта единственная картинка, которую мы только что собираемся создать, показывает несколько строк XML-файлов.
1. Загрузите библиотеки. Я тестировал диаграммы как от Grand, так и от Vizant. Я не видел существенной разницы ни в одном из них. Итак, исходя из ваших предпочтений и лицензии, загрузите библиотеки отсюда:
- большой
- Визант
- Graphviz Точечный файл должен быть постобработан в Graphviz для создания фактического графика.
2. Создайте Цель Муравья. У меня есть два списка, показанные ниже; один для Великого и один для Византа. Если вы использовали пользовательские задачи ant, приведенный ниже список не требует пояснений. Перед использованием Grand или Vizant определите задачу. Затем укажите имя файла сборки, его местоположение и вывод. Чтобы просмотреть график, вам нужно преобразовать файл точек в нечто другое, используя команду dot. В нашем случае мы генерируем PDF-файл, но вы также можете создать любой другой формат; как JPG, PNG и так далее.
Листинг 1 для Grand:
<target name="grandAntDiagram">
<typedef resource="net/ggtools/grand/antlib.xml" classpath="${basedir}/lib/grand-1.8.jar" />
<grand output="build.dot" buildfile="${basedir}/build.xml" />
<exec executable="dot">
<arg line="-Tpdf -Gsize=11.69,8.27 -Grotate=90 -o build.pdf ${basedir}/build.dot" />
</exec>
</target>
Перечисление 2 для Византа:
<taskdef name="vizant" classname="net.sourceforge.vizant.Vizant" classpath="${basedir}/lib//vizant-0.1.2.jar" />
<target name="vizantAntDiagram">
<vizant antfile="${basedir}/build.xml" outfile="vizant-build.dot">
<attrstmt type="graph">
<attr name="ranksep" value="1.2" />
<attr name="nodesep" value="0.5" />
</attrstmt>
</vizant>
<exec executable="dot">
<arg line="-Tjpg vizant-build.dot -o build.jpg" />
</exec>
</target>
3. Запустите цель.
Вы можете запускать цели из командной строки, из IDE по вашему выбору или с вашего CI-сервера, просто вызывая вышеуказанные цели.
mobile-166-217-041-119: примеры веб-сервисов meerasubbarao $ ls
build.dot dist run.bat
build.pdf с инструментарием src
build.properties lib test
build.xml passfile vizant-build.dot
классы
qalab.xml отчеты cobertura.ser
мобильно-166-217-041-119: WebServices-образцы meerasubbarao $ муравей grandAntDiagram
Buildfile: build.xmlgrandAntDiagram:
[великий] Загрузка проекта /Users/meerasubbarao/Development/webservices-samples/build.xml
[великий] Настройка цепочки фильтров
[grand] Запись выходных данных в /Users/meerasubbarao/Development/webservices-samples/build.dot
[grand] Вывод в /Users/meerasubbarao/Development/webservices-samples/build.dotBUILD SUCCESSFUL
Общее время: 0 секунд
mobile-166-217-041-119: веб-сервисы-образцы meerasubbarao $
Вот несколько примеров диаграмм для существующих файлов сборки, которые у меня были.
1. Простой файл сборки, который я использовал для своей статьи, написанной для Javalobby.
2. И этот, который был сгенерирован IDE для другой статьи, над которой я работал. Ваш файл сборки выглядит так? Если это произойдет, тогда настало время интенсивно провести рефакторинг файлов сборки.
PS: приведенные выше списки сами по себе достаточны для того, чтобы диаграммы работали в ваших файлах сборки, единственное, что вам нужно изменить, — это расположение библиотек. Кроме того, не забудьте скачать и установить Graphviz, в противном случае вы получите следующее исключение:
BUILD FAILED
/Users/meerasubbarao/Development/webservices-samples/build.xml:107: Ошибка
выполнения: java.io.IOException: точка: не найдена
Общее время: 269 миллисекунд
Я надеюсь, что эта статья убедила вас в важности документирования вашего процесса сборки. Следующим наиболее важным аспектом, на мой взгляд, является информирование вашей команды об этом и поддержание актуальности документации. Эта статья показала вам, как следовать этим аспектам в 3 простых шага.