Как предотвратить Maven 2 от поиска удаленных репозиториев для конкретных локальных настроек?

Как предотвратить Maven 2 от поиска удаленных репозиториев для определенных зависимостей, которые находятся только в локальном репозитории?

Ответ 1

Как предотвратить Maven 2 от поиска удаленных репозиториев для определенных зависимостей, которые находятся только в локальном репозитории

Ну, на самом деле, Maven не будет, если:

  • они являются зависимостями SNAPSHOT, и в этом случае это ожидаемое поведение.
  • им не хватает файла .pom, и в этом случае вы можете его предоставить или сгенерировать (см. вопросы ниже).

Связанные вопросы

Ответ 2

  • настроить nexus в качестве менеджера хранилища.
  • добавьте дополнительные удаленные проксированные репозитории при необходимости
  • добавить локальный размещенный репозиторий (размещенный на сервере nexus).
  • сначала определите группу репозиториев в правильной последовательности поиска с вашим местным репо.
  • измените свои сборки, указывая на URL-адрес группы nexus (используйте mirrorOf = * в ваших настройках .xml)
  • запустите свою сборку и позвольте nexus управлять локальным и удаленным разрешением зависимости.

Ответ 3

Используйте фиксированные номера версий в POM для ваших удаленных зависимостей или локальные версии, которые вы хотите извлечь из локального репозитория.

Maven пытается быть дружелюбным и получать последнее и самое лучшее из того, что не указало номер версии.

Для быстрого исправления, чтобы не дожидаться загрузки Интернета каждый раз, когда вы строите, вы можете использовать mvn -o для принудительной автономной сборки, а затем он не потеряет время, пытаясь извлечь новые версии.

Ответ @crowne также очень хороший совет, особенно настройка собственной связи и обеспечение того, чтобы все удаленные репозитории были настроены там, поэтому у вас никогда не будет неприятных сюрпризов, когда репо исчезнет в какой-то день.

Ответ 4

Чтобы предотвратить Maven от проверки удаленных репозиториев вообще, вы можете использовать флаг -o. В противном случае Maven проверит, что зависимости от моментального снимка обновляются. Вы можете использовать диспетчер зависимостей, например Nexus, чтобы получить мелкомасштабный контроль над разрешением зависимостей. Раздел файла в вашем файле pom.xml или settings.xml также имеет элемент updatePolicy, который позволяет вам настроить, как часто Maven будет проверять для обновленных зависимостей.