Подтвердить что ты не робот

Как отлаживать код Java при использовании ANT script в Eclipse

У меня есть класс java, и мне нужно его отладить (поставить контрольные точки и продолжить использовать F6). Я использую ANT script для запуска, сборки, развертывания и запуска кода. Я использую:

<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" debuglevel="lines,vars,source">

..........

</javac>

Но когда я помещаю точку останова в строку в моем классе foo.java, и я запускаю ANT script (часть запуска, щелкните правой кнопкой мыши на пробеге → Debug As → Ant Build), Eclipse не останавливается на этой строке кода.

Что я пропущу?!

4b9b3361

Ответ 1

В задаче <java> ant вы должны добавить два параметра jvm (<jvmarg> IIRC), чтобы включить отладку:

 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5432

Это запустит программу java с включенной отладкой, и программа будет готова принять отладочные соединения на порту 5432. Затем вы должны использовать средство удаленной отладки IDE и направить его для подключения к порту 5432.

Ответ 2

(не смог прокомментировать данный ответ, поэтому должен сделать другой ответ)

Я понял, что при запуске Ant из Eclipse вам нужно добавить fork = "true" в задачу <java>. Кроме того, мне было непонятно, как писать вложенные jvmargs, так что вот пример:

<java classname="..." fork="true">
  <jvmarg value="-Xdebug" />
  <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" />
  ...
</java>

Ответ 3

В Eclipse:

Toolbar > External Tool Configurations... > (select your existing ANT build or create new) > JRE tab

В "Аргументы VM" добавьте:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y

Снова Toolbar > Debug > Debug Configurations... > Remote Java Application > New

Name: Debug Ant
Project: <Select your project where debug files are kept>
Host: localhost
Port: 8787

Теперь в разделе "Внешние конфигурации инструментов" запустите "ANT" Задача "(который ждет отладчика удаленных приложений Java для подключения), затем запустите" Debug Ant "из значка панели инструментов" Отладка ".

Ответ 4

Вот как я получил это работает для меня (просто комментируя для дальнейшего использования).

Впереди дамп ссылки:


Отладка Ant-задач не так проста, как простая отладка Java. Хотя вы можете отлаживать файл Ant, добавляя точки останова, копание в коде определенной пользовательской задачи потребует добавления удаленного отладчика, чтобы можно было "перехватить" запущенный процесс.

Я объясню, как это сделать в Eclipse, хотя я повторяю, что это может быть достигнуто со всеми основными Java IDE. Первым делом необходимо создать новую конфигурацию запуска для файла ant, в котором вы планируете использовать настроенную новую задачу. Для этого перейдите по ссылке:

Выполнить → Внешние инструменты → Настройка внешних инструментов...

Щелкните правой кнопкой мыши в Ant Build → New и на вкладке Main выберите свой ant-скрипт в поле Buildfile. Затем перейдите на вкладку JRE и вставьте следующие аргументы JVM:

-Xrunjdwp: транспорт = транспорт по сокетам, адрес = 8000, сервер = у, приостановить = п

Если вам интересно, что означают эти аргументы, проверьте это, хотя немного обновленный (Java 1.5) все еще работает.

Как только это будет сделано, вы должны создать новую конфигурацию Debug для удаленного Java-приложения. Для этого перейдите к:

Run-> Отладочные конфигурации

Раскройте список в левом столбце и щелкните правой кнопкой мыши в Remote Java Application → New. Выберите название проекта в поле Project. Значения по умолчанию для хоста и порта в порядке, если вы использовали те же самые для конфигурации Ant (аргументы JVM).

Все готово к тестовому запуску! Добавьте точки останова, где вы считаете нужным. В моем случае я добавил один из них в сценарий ant, который использует настраиваемую задачу ant, а также в настраиваемую задачу ant в методе execute.

Щелкните правой кнопкой мыши в вашем скрипте или задаче ant → Debug As...-> Ant> Build first

Теперь ДО вызова вашего пользовательского кода задачи ant перейдите в Run-> Debug Configurations и отладьте ранее созданную вами конфигурацию Java Remote Application. Это запустит отдельный поток, который будет отлаживать ваш пользовательский код задачи ant, при условии, что вы включили несколько точек останова :) На следующем рисунке вы можете увидеть, как в моем случае поток остановился в методе execute моей пользовательской задачи ant. После этого вам решать, что делать дальше...

Ответ 5

Это поможет людям, которые задаются вопросом, как отлаживать веб-приложение, использующее ant для сборки и развертывания. Это довольно часто в старых приложениях. Если проект был запущен как "Динамический веб-проект" в качестве начала, следующие шаги и даже ant не нужны.

Задайте точку прерывания в коде.

Window -> Show View -> Others -> Servers

Добавьте свой сервер JBoss или Tomcat, например.

Щелкните правой кнопкой мыши на сервере и выберите "Отладка".

Убедитесь, что debug = "true" установлен в файле ant build.

Ответ 6

set ANT_OPTS=%ANT_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432

в Eclipse

Toolbar >> Run >> Debug Configurations >> + >> 

Дайте значения:

Name: Debug_Ant
Project: active-eclipse-project
Host:localhost
Port:5432

Ответ 7

Шаги:

1) Настройте удаленный java-отладчик с локальным хостом как имя, адрес порта 8000 (или независимо от адреса вашего системного порта)

2) Создайте пакетный файл и сохраните его в папке bin вашего tomcat (этот шаг требуется, когда мы хотим отлаживать дистанционное сохранение серверов в одной системе).

в пакетном файле вы должны сохранить эту строку:

установить JPDA_ADDRESS = 8000

установить JPDA_TRANSPORT = dt_socket

catalina.bat jpda start

после этого сохранить точку останова в вашем java-коде и отладить этот удаленный отладчик. он будет работать.

Счастливое кодирование!!

Ответ 8

Я тоже столкнулся с этой проблемой, я сделал следующие шаги для решения.

  • Поместите приведенные ниже строки в файл ANT

  • Перейдите к настройкам отладки- > Удаленное java-приложение- > Создайте новый файл конфигурации с именем проекта, port = 5432, а host - localhost и сохраните его.

  • Теперь запустите файл build.xml, используя режим отладки, и вы увидите на консоли, что "Прослушивание транспорта dt_socket по адресу 5432"

  • Теперь запустите конфигурационный файл отладки, который вы настроили. Теперь ваш код селена будет работать в режиме отладки.

Надеюсь, что это поможет.

Если вы все еще сталкиваетесь с проблемами, сообщите мне, чтобы я мог помочь вам в этом.

Спасибо