Хорошо, я также работаю над довольно похожей настройкой, так что вот мои 2 цента.
Прежде всего, намочите ноги с Maven-Jetty Plugin.Сделайте так, чтобы он сканировал файлы на наличие изменений, чтобы вам не приходилось перестраивать / развертывать весь проект для каждого изменения.Также настройте его так, чтобы он сохранял сессию, чтобы при каждом (автоматическом) развертывании вам не приходилось повторно регистрироваться и переходить в состояние, в котором вы находились до внесения изменений:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.24</version>
<configuration>
<stopPort>9669</stopPort>
<stopKey>myapp</stopKey>
<!-- Redeploy every x seconds if changes are detected, 0 for no automatic redeployment -->
<scanIntervalSeconds>3</scanIntervalSeconds>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8080</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<webAppConfig>
<contextPath>/myapp</contextPath>
<sessionHandler implementation="org.mortbay.jetty.servlet.SessionHandler">
<sessionManager implementation="org.mortbay.jetty.servlet.HashSessionManager">
<storeDirectory>${project.build.directory}/sessions</storeDirectory>
</sessionManager>
</sessionHandler>
</webAppConfig>
</configuration>
</plugin>
Теперь перейдите к проекту Properties
(щелкнув правой кнопкой мыши по проекту)> Build
> Compile
> Compile on save
и выберите For both application and text execution
.
Также перейдите на Options
> Miscellaneous
> Maven
> и проверьте / выберите Skip Tests for any build executions not directly related to testing
, чтобы тест выполнялся только тогда, когда вы действительно запускаете «Тест».
Следуя этим простым шагам, я могу кодировать и тестировать изменения в реальном времени, быстро и без необходимости повторного развертывания.Тем не менее, я столкнулся с несколькими незначительными проблемами / неприятностями:
Вам все еще приходится чистить сборку иногда, когда что-то не работает (например, вы что-то удалили, а изменения неотражать)
Поддержание его в течение длительного времени может дать исключение PermGen (Недостаточно места), что является разумным, и вы всегда можете увеличить объем памяти, используя опции jvm
вам не понравится разрабатывать / тестировать проекты для таких контейнеров, как jboss / websphere, как только вы привыкнете к этой настройке