2010-06-14 4 views
19

Я хотел бы узнать о возможностях отладки ANT с использованием eclipse. В основном У меня есть сценарий сборки ANT, написанный коллегой, и я хотел сделать шаг через каждую цель, чтобы увидеть, какие вызовы вызываются существами, вызываемыми существами .ant debugging in eclipse

+1

См. Также http://stackoverflow.com/questions/15380429/debug-ant-task-from-eclipse – Vadzim

ответ

4

Поскольку ant - это просто приложение Java, вы можете просто добавить конфигурацию отладки (тип приложения Java) для затмения. См. Running Ant via Java о том, как вызвать Ant, как если бы это было приложение Java. Я предполагаю, что вы знаете, как отлаживать приложение Java в Eclipse, так что это должно помочь вам до конца. Если нет, спросите, и я расширю это.

29

Вы можете сделать это в Eclipse, с этими шагами:

  1. Обязательно откройте файл сборки в редактор ANT (правой кнопкой мыши по сборке файл -> Открыть с помощью -> Ant редактор).
  2. Дважды щелкните по левому краю ваш файл сборки, где вы хотите точка останова.
  3. Открыть вид муравья (окно -> Показать вид -> Муравей).
  4. Если файл сборки отсутствует в представлении , вы можете просто добавить его.
  5. После добавления правой кнопкой мыши на целевом муравей вы хотите запустить, и выберите Debug, как -> Ant построить
  6. Перспектива Debug должен открыть и процесс должен остановиться на вашей точки останова, где вы можете шаг через it
  7. Иногда требуется установить аргументы во время отладки. Его можно установить, выбрав: Debug as -> Ant build. А затем нужно выбрать Аргументы. И тогда значения могут быть введены как: -Dprop.name = значение свойства
2

Прежде чем вы погрузитесь глубоко в внутренние части Ant, возможно, стоит попробовать запустить скрипт с флагом -d (debug) и наблюдать за выходом. Предполагая, что вам интересно понять, как работает конкретный скрипт Ant (или не работает), а не сам Ant.

Если Ant - ваша область интересов, ответы выше - это направление, которым нужно следовать.

4

С большими файлами муравьев или большими проектами java, когда мы можем иметь несколько файлов муравьев, вызывающих друг друга, я обнаружил, что граф зависимостей очень полезен. Для этой цели я использовал Grand.

Конечно, это не поможет, если вы хотите отлаживать последовательность инструкций внутри конкретной цели.

2

Создать скрипт antdebug.sh который устанавливает переменную окружения ANT_OPTS перед началом муравей

#!/bin/bash 
set -e 
export ANT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=2607" 
# now execute ant 
exec ant "[email protected]" 

После этого вы можете дистанционно прикрепить к нему с помощью IDE. Обратите внимание: suspend=y, он приостановит выполнение до тех пор, пока вы не будете прикреплены.

0

добавить ниже XML-тега муравей build.xml после целевой инициализации

<javac srcdir="${src.java.dir}" destdir="${target.build.dir}" includeantruntime="true" source="${source}" target="${target}" debug="true" debuglevel="lines,vars,source" classpathref="main.classpath" fork="true" memoryinitialsize="512m" memorymaximumsize="512m" /> 

если Javac уже там не забудьте добавить debug="true" debuglevel="lines,vars,source" иметь интерактивный сеанс отладки.