Наша команда борется с проблемами, связанными с идеей библиотечного хранилища. Я использовал Maven, и я знаком с Айви. У нас мало сомнений в том, что для сторонних jar общий репозиторий, интегрированный в систему сборки, имеет огромное преимущество.
Борьба заключается в том, как обращаться с артефактами, которые являются строго внутренними. У нас есть много артефактов, которые используют несколько различных инструментов сборки, включая Maven, но по сути они все являются частью одного продукта (одна команда отвечает за все это). К сожалению, в настоящее время мы не производим ни одного артефакта на проект, но мы движемся в этом направлении. Разработчики делают и будут проверять все проекты.
Мы видим два варианта:
1) Относитесь ко всем артефактам, даже внутренним, как к сторонним банкам. Каждый jar создается и публикуется в хранилище, а другие проекты артефактов ссылаются на хранилище для всех проектов.
2) Каждый проект напрямую связан с другими «родственными» проектами. Существует «главный проект», который запускает сборки для всех других проектов с соответствующим порядком зависимостей. В IDE (eclipse) каждый проект напрямую ссылается на свой зависимый проект (источник). Инструменты сборки изучают одноуровневый проект, ссылающийся на .jar.
Очень ясно, что мир с открытым исходным кодом движется к модели хранилища. Но нам кажется, что их потребности могут быть разными. Большинство таких проектов очень независимы, и мы сильно подозреваем, что пользователи редко вносят изменения в разные проекты. Есть частые обновления, которые теперь легче отслеживать и знать клиентам.
Однако, это добавляет бремени к тому, что вы должны отдельно публиковать изменения. В нашем случае мы просто хотим взять на себя обязательство контроля над источниками (что мы делаем 20-50 раз в день).
Я знаю, что Maven может решить все эти проблемы, но команда НЕ собирается преобразовать все в Maven. Кроме maven, что вы рекомендуете (и почему)?