2010-07-28 2 views
2

У меня есть проект Java, который имеет как серверные, так и клиентские пакеты. Кроме того, у меня есть пакет библиотеки.Общие ресурсы в проекте Java для серверных и клиентских пакетов

Я использую eclipse и поместил все в один проект Java, каждый сервер секции, клиент и библиотека находятся в отдельных пакетах, проблема в том, что при экспорте все добавляется в файл Jar.

Итак, я полагаю, мне нужны два разных проекта - клиент и сервер, но как насчет файлов разделяемых библиотек? Что мне с ними делать? Мне действительно нужны три разных проекта? Это станет немного громоздким, поскольку все на самом деле связано, и я хотел бы сохранить их вместе.

ответ

4

Я использую затмение и поставил все в одном проекте Java, каждый раздел сервера, клиент и библиотека в отдельных пакетах, проблема заключается в том, что Когда я экспортирую, все добавляется в файл Jar.

Это часть, которая меня заинтриговала, почему вы экспортируете что-то, что имеет как клиент, так и сервер? С точки зрения клиент-сервер они будут распространяться отдельно.

Действительно ли мне нужны три разных проекта ? Это станет немного громоздким, поскольку все на самом деле связано с , и я хотел был бы сохранить их вместе.

Благодаря как Ид теперь могут управлять зависимостями между проектами/модулями, я не думаю, что это выглядит так плохо, как вы его картину. Например, вы можете работать одновременно с кодом сервера и использовать его классы и интерфейсы из вашего кода клиента и ссылочные JAR-файлы, созданные проектом сервера.

Я хотел бы также добавить, что «Проект» не является самой широкой инкапсуляцией кода, но все еще существует «Рабочая область», которая может содержать ряд связанных «проектов». Другие IDE идут для других формулировок типа «Модуль» вместо «Проект».

Заключительные мысли:

Для наименьшего пути импеданса, я думаю, вы должны отделить клиента и части сервера на два проекта, и сделать то же самое думаю, что для общей библиотеки в случае, если вы компилируете это из источника, т. е. не стороннего JAR.

Итак, в конце дня у вас будет 3 'продукта' из процесса компиляции и распределите их там, где они принадлежат, с «библиотекой», дублированной на обеих сторонах распределения.

2

Для этого вы можете создать отдельный проект для вашего общего кода и создать для него библиотеку (например, файл jar). Затем ваши клиентские и серверные проекты могут использовать общую библиотеку.

Еще лучше, вы можете использовать эту общую библиотеку для других проектов в будущем.

Примечание: Eclipse собирается собирать исходные файлы в соответствующие файлы классов и помещать их в папку bin или где у вас есть папка вывода, заданная для свойств проекта. По умолчанию он не создает файл jar.

Если вы хотите создать файлы jar, лучший способ - использовать инструмент, подобный муравьям. Тогда вы сможете создавать все необходимые вам банки и структурировать их, как вам нравится.

Вот ссылка для справки: Create Multiple JARs from Eclipse Project

+0

привет, я только немного обновил вопрос, чтобы решить эту проблему. Есть ли способ организовать всю партию в одном связанном проекте, но есть возможность экспортировать разделы кода в банку? – jax

+0

Если вы хотите создать файлы jar, одним из способов является использование инструмента, такого как ant. Обратитесь к моему последнему правлению. – dcp

1

Вы можете создать отдельный проект для клиентской и серверной сторон, общий пакет можно присоединить в определении пути класса.

0

... проблема в том, что когда я экспортирую, все добавляется в файл Jar.

Это действительно проблема? Возможно, общий код является активом, а не обязательством. Возможно, вам стоит оптимизировать проблемы с разработчиками, прежде чем беспокоиться о проблемах с развертыванием, которые здесь мы решили, в конце концов, не проблема.

Поэтому я полагаю, мне нужно два разных проектов, клиент и сервер, но что об общих файлов библиотеки? Что я могу сделать с ними ? Действительно ли мне нужно трех разных проектов? Это будет станет немного громоздким, поскольку все на самом деле связано, и я хотел бы , чтобы держать их вместе.

У нас есть аналогичная ситуация и мы решили использовать общий код. Каждый получает тот же код и выбирает, какой режим и конфигурацию им нужно запускать.

Если вы заходите в нашу большую систему (более 5000 классов), вы получаете код для серверов (два основных варианта), клиенты (еще два типа), общий контент (сторонние банки, визуальные активы и т. д.) и материал для сайта (файлы конфигурации, сценарии запуска и примеры данных).

В результате, после одной проверки у вас есть полный пакет для всех наших основных местоположений, сценариев сборки и конфигураций запуска Netbeans и Eclipse. В результате вы можете перейти с пустой машины (только с IDE) на рабочую комбинацию клиент-сервер за пять минут.

В результате дважды щелкните значок сервера и запустите серверный процесс, запустив конфигурацию для конкретного сайта. Дважды щелкните клиентом и запустите клиентский процесс, который готов подключиться к серверу, который вы только что создали.

Punchline: не делайте разработку и развертывание сложнее на себе, если нет веской причины. В нашем случае было проще, дешевле и проще поддерживать ситуацию, когда мы предоставляли каждой установке тот же самый пакет.

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