Как модулировать (большое) Java-приложение?

У меня под рукой довольно большое (несколько MLOC) приложение, которое я хотел бы разделить на более обслуживаемые отдельные части. В настоящее время продукт включает около 40 проектов Eclipse, многие из которых имеют взаимозависимости. Это само по себе делает систему непрерывной сборки неосуществимой, потому что она должна была бы очень много перестраиваться при каждой регистрации.

Есть ли лучший способ как

определить части, которые можно сразу отделитьдокумент взаимозависимости визуальнораспутать существующий кодобрабатывать «патчи», которые мы должны применить к библиотекам (в настоящее время это делается путем помещения их в путь к классам перед фактической библиотекой)

Если есть (бесплатные / открытые) инструменты для поддержки этого, я был бы признателен за указатели.

Несмотря на то, что у меня нет опыта работы с Maven, мне кажется, что он требует очень модульного дизайна. Теперь я задаюсь вопросом, может ли это быть что-то итеративно модифицировано, или проект, который должен был бы использовать его, должен быть изначально продуман с модульностью в памяти.

Редактировать 2009-07-10

Мы находимся в процессе разделения некоторых основных модулей, используяApache Ant / Ivy, Действительно полезный и хорошо продуманный инструмент, не навязывающий вам так много, как Maven.

Я записал некоторые более общие подробности и личное мнение о том, почему мы делаем это в моем блоге - слишком долго, чтобы публиковать здесь и, возможно, не всем интересно, поэтому следуйте по своему усмотрению:www.danielschneller.com

Ответы на вопрос(7)

Ваш ответ на вопрос