2012-01-12 2 views
4

Я пишу сервер на Java. Для поддержки развития сервера у меня есть несколько классов с методами main(), которые я намерен запускать из командной строки в качестве инструментов разработки, чтобы выполнять такие задачи, как диагностика, имитировать клиентские соединения и модули упражнений в изоляции от остальной части сервер. В настоящее время эти классы являются частью основного проекта сервера.Проект Stucture для Java с несколькими основными точками входа и исполняемыми файлами?

Каков наилучший способ структурирования моего проекта для поддержки этих нескольких исполняемых файлов? Должен ли я создавать отдельные проекты для этих инструментов моделирования/загрузки/диагностики или хранить их в главном проекте сервера? Если я сохраню их в основном проекте, должен ли я сконфигурировать проект для создания нескольких исполняемых банок или одной банки с несколькими точками входа? Если используется одна банка, можно ли указать основную точку входа для сервера по умолчанию?

ответ

8

Если сервер и утилиты не имеют совершенно разных зависимостей, я бы упростил их и поместил все в одну банку. Обеспечить оболочки скриптов, обертка вызовы к соответствующим классам:

# startServer.cmd 
java -cp MyServer.jar;other.jar com.foo.myserver.Main 

#showDiagniostics.cmd 
java -cp MyServer.jar;other.jar com.foo.myserver.Diagnostics 

Вы можете сделать его исполняемую баночку с классом запуска сервера в качестве основного класса, но я считаю, что легче иметь исполняемый скрипт, чем придется use java -jar MyServer.jar

+0

Обратите внимание, что они настолько похожи, что на самом деле у вас может быть один сценарий разработчика, который параметризует запускаемый класс. Таким образом, для создания второй (или 50-й) точки входа не потребуется новый скрипт. –

Смежные вопросы