Отладка проекта eclipse / maven на удаленном сервере? - PullRequest
1 голос
/ 12 августа 2011

Я использую свой ноутбук для разработки, но его ресурсы ограничены. У меня есть локальное eclipse / maven и моя локальная кодовая база, и я хочу сохранить это, потому что я хочу иметь возможность программировать, компилировать и тестировать junit все время.

В моем офисе я бы хотел иметь возможность отладки в производственном сценарии, то есть с большой базой данных и Java-кучей 8 ГБ ОЗУ.

Я думал, что не должно быть слишком сложно настроить eclipse и maven, чтобы поместить скомпилированный код на удаленную машину, выполнить процесс maven (jetty: run на удаленной машине) и подключить eclipse для отладки. Удаленный компьютер может иметь собственную базу данных, и мне нужно только убедиться, что репозитории maven синхронизированы.

Кому-нибудь удалось запустить этот или подобный сценарий? Я все еще не мог понять, как разместить скомпилированные исходники моих ~ 10 проектов на удаленной машине . Я думаю, что выполнение задачи maven и присоединение отладчика должно быть легко с некоторой магией ssh.

1 Ответ

3 голосов
/ 12 августа 2011

Нет необходимости в ssh-магии, если брандмауэры не являются проблемой. Просто перенесите свой проект на удаленный компьютер и запустите сборку с mvnDebug вместо mvn. Maven будет прослушивать отладочное соединение по порту 8000 по умолчанию и будет ждать, пока вы подключитесь, чтобы продолжить сборку. Сконфигурируйте модуль удаленной отладки в Eclipse, и он будет подключаться и отлаживаться, как обычно. Что касается передачи кода, вы можете использовать rsync , но это отличный пример использования git. Именно так я и сам делаю эту вещь.

Редактировать: Я никогда не искал способ сделать это с Eclipse, но вы можете запустить любую произвольную команду из Eclipse, поэтому rsync должен работать нормально. С rsync вы бы хотели что-то вроде

rsync -ruz . <user>@<host>:/<path>

Запустите его из каталога вашего проекта, и он должен скопировать все содержимое каталога на удаленный хост, копируя только обновленные файлы после первоначальной копии. Вы можете исключить каталоги, например target, с помощью параметра repeatable --exclude. Например. --exclude=target. После копирования проекта вы можете начать сборку с

ssh <user>@<host> mvnDebug <whatever>

Способ git может показаться немного более загадочным, если вы не знакомы с git, но у него есть дополнительное преимущество, заключающееся в возможности легко исправлять ошибки на пульте и возвращать их обратно в локальную систему. С помощью git вы сначала зайдете на удаленный компьютер с помощью ssh, создадите каталог проекта и git init. После этого вы можете в любое время отправить изменения на пульт с помощью

git push -f <user>@<host>:/<path> master

при условии, что вы работаете в мастере, а затем на пульте:

git reset --hard
mvnDebug <whatever>
...