Как установить свойство agentlib для плагина mvn tomcat (jpda)
Связано с
eclipse отлаживать удаленное веб-приложение = > Как отлаживать удаленное приложение в моем eclipse
Как я могу установить/архивировать это в плагине mvn tomcat?
http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/
Единственное, что может помочь, это установить systemProperty, но это не работает для меня; /
Цель: позволить tomcat запускаться на консоли через maven, но разрешать удаленное отладки для разных IDE
(ДА, ребята, мы можем запустить tomcat в Eclipse WTP! Это не вопрос;)
Ответы
Ответ 1
$ 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
Ответ 2
Это немного старый поток, но для полноты, хотя я мог бы добавить немного здесь.
Плагин не предоставляет настройки параметров отладки по какой-то странной причине.
Таким образом, ваш единственный вариант - вручную указать конфигурацию отладки для JVM, которая запускает этот процесс.
В вашей среде это достигается тремя способами:
- Использование переменной среды well-maven (как описано childno.de)
- Непосредственно задавать параметры для maven (нет необходимой переменной env):
mvn -Xdebug -Xnoagent -Djava.compiler = NONE -Xrunjdwp: transport = dt_socket, address = 8000, server = y, suspend = y tomcat7: run-war
- С конфигурацией запуска eclipse. Это в основном то же самое, что и у 2), но вы определяете это в eclipse (это было бы хорошо, если бы вы вообще не хотели покидать IDE). Для этого вам нужно указать конфигурацию Конфигурация сборки Maven. Задайте цель
tomcat7:run
(или аналогичную), а затем перейдите на вкладку JRE. В разделе аргументы VM указывается конфигурация отладки: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
Если вы выберете 3), точная цель для tomcat7 не имеет отношения к разрешению отладки. Выберите в соответствии с вами вариант использования (динамический веб-проект, война и т.д.). То же самое касается конфигурации плагина. Однако не забудьте указать, что вы используете плагин tomcat maven в разделе pluginManagement
вашего проекта pom:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</pluginManagement>
Ответ 3
ИЛИ... вы можете просто добавить следующий тег в свою конфигурацию плагинов
<jpda>true</jpda>
Затем, когда вы выполните: mvn tomcat7: run, он запустит jpda на порту 8000.
Забавная вещь, хотя я ее протестировал, и она работает, я не могу найти какой-либо код в базе кода openource, чтобы объяснить, почему он работает, и я не нашел способа изменить его из стандартного порта 8000.
Apache, похоже, сбросил мяч, когда дело доходит до документации этого плагина.