2012-01-13 3 views
0

Мне кажется, что с javax.tools.JavaCompiler JDK должен быть простой способ повысить производительность разработчика с помощью live code-replace (a'la JRebel, но с более общим образом). Моя идея заключается в том, что я запускаю свое приложение, редактирую источники Java (предположим, вне IDE), и запущенный код автоматически обновляется автоматически. (на стороне разработчика не требуется компиляция вручную или любые другие действия).Java-код hot-replace | reload с JDK Java Compiler или groovy

У кого-нибудь есть рабочий прототип?

Моей другой идеей было бы использовать groovy для перезагрузки классов Java (таким образом, используя Groovy только для разработки, но не для среды исполнения).

пс. Я знаю, что отладчик Eclipse Java имеет это, но это субоптимально.

+0

Возможно, вы захотите взглянуть на игру! он имеет эту цель. –

+1

Stackoverflow не является сервисом «мы-реализовываем ваши идеи для вас». – meriton

+1

meriton: Мне очень жаль, если это так, к счастью, например. Тодд думал, что иначе. –

ответ

1

Есть только несколько способов, с которыми я успешно справился с горячей заменой кода на JVM NOT внутри проекта Grails. Оба были с пружиной:

1) Используйте скриптовый компонент, написанный в Groovy/Ruby/Beanshell с «обновлением» или «перезагрузкой», установленным в конфигурации (не могу вспомнить, что прямо сейчас, но я могу найти в случае необходимости) ->http://static.springsource.org/spring/docs/2.0.5/reference/dynamic-language.html

2) Начните с использованием Groovlet ->http://groovy.codehaus.org/Groovlets

3) Если у вас есть класс Spring боба, я, кажется, помню перекомпиляции, то имея сценарий взять файл класса и перезапись на Tomcat с некоторыми успех в то время назад. Я думаю, что прокси-сервер Spring может сделать эту работу, но прошло какое-то время, так как я испортил это.

Удачи вам!

+0

# 1, кажется, мой лучший выбор как часть инфраструктуры, и я мог бы использовать # 2 как шаблон для загрузки классов. Благодаря! –

+0

Ваш прием! Атрибут для обновления - это 'refresh-check-delay', и лучшие примеры, которые я нашел, были в книге «Весна в действии» Мэннинга. Но URL-адрес, который я опубликовал, также охватывает его. –