Сборка классов из одного пакета в отдельные банки

У меня есть серверное приложение и два клиентских приложения на основе Swing. Мы разрабатываем их в eclipse, и для каждого есть отдельный проект.

Многие классы являются общими. Например, в пакете my.server есть некоторые классы для сервера и клиентов, а другие - только для сервера. Хотя я предпочитаю поместить их в один пакет, поскольку они тесно связаны и некоторые из них полагаются на видимость пакета, я не хочу распространять классы, которые не нужны приложению, поскольку это не только увеличит размер файла, но и создаст угрозу безопасности.

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

Сервер:

  • server.jar: классы, используемые только сервером
  • server-client1-common.jar: классы, общие для сервера и клиента 1
  • server-client2-common.jar: классы, общие для сервера и клиента 2

Клиент 1:

  • client1.jar: классы, используемые только клиентом 1
  • server-client1-common.jar: классы, общие для сервера и клиента 1
  • client-common. jar: классы, общие для Client 1 и Client 2, но не Server

Client 2:

  • client2.jar: классы, используемые только Client 2
  • server-client2-common.jar: классы, общие для Server и Client 2
  • client-common.jar: классы, общие для Client 1 и Client 2, но не Server

Я понимаю, что вы можете сделать это вручную с помощью ant, но это будет катастрофа в обслуживании. Есть ли инструмент, который позаботится о такой зависимости автоматически?

7
задан Tom Tucker 30 January 2012 в 15:13
поделиться