Я полностью согласен с нашими коллегами, которые предложили избегать использования такого решения:
Локальное хранилище - это прежде всего:
Локальное - Разработчик может обновлять этот репозиторий только для разработчиков. Это не "мульти-доступ" безопасно. Даже если многие потоки из одного и того же процесса maven пытаются загрузить в него артефакты (или вообще изменить его), это иногда может быть проблематичным c. Я не говорю о параллельном доступе с несколькими JVM, просто он не предназначен для этого.
Кэш - предназначен для быстрого доступа во время компиляции и других задачи, которые делают разработчики. Если вы используете распределенную ФС, это может замедлить компиляцию, и разработчики не будут ее использовать.
Итак, если ваша цель -
, мне нужно опубликовать sh моей библиотеки на сервере, а другой пользователь использует ее для создания проекта
- Используйте такие инструменты, как Nexus или Artifactory, для размещения своих артефактов, предназначенных для совместного использования
- Если эти инструменты недоступны - используйте какой-либо веб-сервер с доступом HTTP и настройте Maven для загрузки оттуда.
- Если это невозможно - поручите разработчикам запускать
mvn install
для каждой новой версии общих ресурсов. Затем они получат в своем локальном репо приложение воспроизводимой версии.
Конечно, вариант 3 действительно плохой, вариант 2 гораздо лучше, но вариант 1 - лучший, который вы можно получить.