Модификация сценария запуска для развертывания Tomcat с помощью Maven
Я использую инструмент профилирования, который загружается как и когда я запускаю Tomcat с файлом war приложения, помещенным в каталог webapps. Поэтому, как только я запускаю автозагрузку, мои классы получают инструментарий, и все работает отлично.
Но для этого я беру военный файл, сгенерированный как часть maven install (который загружает tomcat и развертывает в нем военный файл), и помещаю его в другой tomcat, который я скачал вручную. Затем мне нужно немного отредактировать файл catalin.bat, чтобы установить для свойства JAVA_OPTS значение javaagent, чтобы оно запускалось при запуске.
Что я хотел бы сделать, так это настроить инструмент и интегрировать его с maven таким образом, чтобы при чистке и установке классы инструментировались, и инструмент профилирования запускался. Я считаю, что мы можем сделать некоторые изменения конфигурации в pom.xml для достижения этой цели? Любая помощь в этом отношении будет принята с благодарностью! Спасибо
1 ответ
Это только часть того, что вам нужно, но вы должны настроить свой кот по-другому - возможно, это настолько облегчит вашу задачу, что вы сможете решить все остальное самостоятельно:
Вам не нужно обновлять catalina.bat
- вместо этого создайте файл с именем setenv.bat
в том же каталоге: он не включен в tomcat, но если он там есть, он будет учитываться при запуске / завершении работы tomcat.
Говоря о запуске / завершении работы: JAVA_OPTS, который вы установили в этом файле, будет использоваться для запуска, а также для завершения (есть процесс Java, запускаемый, когда tomcat должен выключиться и работать в течение короткого времени). Если у вас большие требования к памяти, выделены порты JMX и т. Д., Они будут применяться к обоим процессам, поэтому могут быть конфликтующими. Вы скорее хотите установить CATALINA_OPTS - это просто используется для запуска tomcat, а не для его выключения.
Итак, типичный контент для setenv.bat
SET CATALINA_OPTS="-DyourSettings -DwhateverYouLike"
И, кстати, то же самое работает для setenv.sh
на других платформах