Как отлаживать код Java при использовании скрипта ANT в Eclipse - PullRequest
40 голосов
/ 09 марта 2010

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

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

..........

</javac>

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

Что я пропускаю?!

Ответы [ 8 ]

49 голосов
/ 03 октября 2010

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

Я понял, что при запуске 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>
30 голосов
/ 09 марта 2010

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

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

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

4 голосов
/ 07 января 2015

В Eclipse:

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

In "VM Arguments" add:

-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 Task " (который ожидает подключения к удаленному отладчику приложения Java), затем запустите " Debug Ant"из значка панели инструментов" Debug".

3 голосов
/ 04 июля 2013

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

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


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

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

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

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

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

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

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

Выполнить-> Отладка конфигурации

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

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

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

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

2 голосов
/ 18 июня 2014
set ANT_OPTS=%ANT_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432

в Затмении

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

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

Name: Debug_Ant
Project: active-eclipse-project
Host:localhost
Port:5432
2 голосов
/ 22 июня 2011

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

Установите точку останова в вашем коде.

Window -> Show View -> Others -> Servers

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

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

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

1 голос
/ 17 марта 2015

Шаги:

1) Сконфигурируйте удаленный отладчик Java с локальным хостом в качестве имени, адрес порта как 8000 (или любым другим адресом вашей системы)

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

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

набор JPDA_ADDRESS = 8000

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

catalina.bat jpda start

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

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

0 голосов
/ 21 февраля 2017

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

  1. Поместите следующие строки в файл ANT

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

  3. Теперь запустите свой build.xml в режиме отладки,тогда вы должны увидеть в консоли, что «Прослушивание транспорта dt_socket по адресу 5432»

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

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

Если у вас все еще есть проблемы, пожалуйста, дайте мне знать, чтобы я мог помочь вам в этом..

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...