Как установить свойство agentlib для плагина mvn tomcat (jpda)

Относится к eclipse debug remote web application => Как отладить удаленное приложение в моем eclipse

Как я могу установить / архивировать это в плагине mvn tomcat? http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/

Единственное, что может помочь, это установить systemProperty, но это не работает для меня; /

Цель: запустить tomcat на консоли через maven, но включить удаленную отладку для разных сред

(ДА, ребята, мы можем запустить tomcat в Eclipse WTP! Это не вопрос;)

3 ответа

Решение
$ export MAVEN_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
$ mvn tomcat7:run-war

^^ это все, не круто (как это не в POM), но это работает

Источник: http://aaronz-sakai.blogspot.de/2009/02/debugging-jetty-when-running-mvn.html

Это немного старая тема, но ради полноты я хотя бы немного добавлю сюда.

Плагин не предоставляет настройки параметров отладки по какой-то странной причине. Таким образом, ваш единственный вариант - вручную указать конфигурацию отладки для JVM, которая запускает процесс. В вашей среде это можно сделать тремя способами:

  1. Использование общеизвестной переменной среды maven (как описано в childno.de)
  2. Непосредственное указание параметров для maven (переменная env. Не требуется):

    mvn -Xdebug -Xnoagent -Djava.compiler = NONE -Xrunjdwp: transport = dt_socket, address = 8000, server = y, suspend = y tomcat7: run-war

  3. С конфигурацией Run eclipse Это в основном то же самое, что и 2), но вы определяете это в eclipse (было бы хорошо, если бы вы вообще не хотели покидать IDE). Для этого вам нужно указать конфигурацию Maven Build Run. Установить цель tomcat7:run (или аналогичный), а затем перейдите на вкладку JRE. В области аргументов VM вы указываете конфигурацию отладки: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
Если вы выберете 3), точная цель запуска tomcat7 не имеет отношения к разрешению отладки. Выберите в соответствии с вашим вариантом использования (динамический веб-проект, война и т. Д.). То же самое касается конфигурации плагина. Однако обязательно укажите, что вы используете плагин tomcat maven в pluginManagement раздел вашего проекта пом:

<pluginManagement>
   <plugins>
        <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
    </plugin>
    </plugins>
</pluginManagement>

ИЛИ... вы можете просто добавить следующий тег в конфигурацию вашего плагина

 <jpda>true</jpda>

Затем, когда вы выполните: mvn tomcat7:run, он запустит jpda на порт 8000.

Забавно, что, хотя я и проверил это, и он работает, я не могу найти никакого кода в базе кода с открытым исходным кодом, чтобы объяснить, почему он работает, и я не нашел способа изменить порт по умолчанию 8000.

Apache, кажется, упал мяч, когда дело доходит до документации этого плагина.

Другие вопросы по тегам