У меня есть довольно большое (несколько MLOC) приложение, которое я хотел бы разделить на более удобные для обслуживания отдельные части. В настоящее время продукт включает около 40 проектов Eclipse, многие из которых имеют взаимозависимости. Это само по себе делает систему непрерывной сборки неосуществимой, потому что она должна была бы очень много перестраиваться при каждой регистрации.
Есть ли способ "наилучшей практики", как
- идентифицирует части, которые могут быть немедленно отделены
- визуально взаимозависимости документов
- распутать существующий код
- обрабатывает «патчи», которые мы должны применить к библиотекам (в настоящее время обрабатывается путем помещения их в classpath перед фактической библиотекой)
Если есть (свободные / открытые) инструменты для поддержки этого, я был бы признателен за указатели.
Несмотря на то, что у меня нет опыта работы с Maven, кажется, что он требует очень модульного дизайна. Теперь я задаюсь вопросом, может ли это быть что-то итеративно модифицировано, или же проект, который должен был бы использовать его, должен был бы быть изначально продуман с модульностью, с самого начала.
Изменить 2009-07-10
Мы находимся в процессе разделения некоторых основных модулей, используя Apache Ant / Ivy . Действительно полезный и хорошо продуманный инструмент, не навязывающий вам так много, как Maven.
Я записал некоторые более общие подробности и личное мнение о том, почему мы делаем это в моем блоге - слишком долго, чтобы публиковать здесь и, возможно, не всем интересно, поэтому следуйте по своему усмотрению: www.danielschneller.com