2012-12-05 3 views
2

Вот мой текущий вопрос о том, как Maven управляет зависимостями.Maven snapshot «lifecycle»

Когда зависимость активно работает над Maven придает «-SNAPSHOT» до конца версии. ex) 1.1.1-SNAPSHOT. Эти снимки загружаются в удаленный репозиторий, который специально отвечает за моментальные снимки. В том же удаленном репозитории имеется раздел для выпущенных версий пакетов. Теперь, когда проект обновляет зависимости, Maven вытаскивает самую последнюю версию пакета в локальный репозиторий. ТОЛЬКО SNAPSHOTS обновляются в зависимости от отметки времени на снимке. Если Maven вытащит версию выпуска (например: 1.1.0), она не будет искать другой пакет с текущей версией.

Теперь мои вопросы:

  • Какие недостатки в моем понимании? Мне не хватает концептуального произведения?
  • Когда пакет переходит из SNAPSHOT в версию выпуска, как обновить pom.xml, чтобы отразить выпущенную версию пакета? Это ручной процесс?
  • Наконец, если пакет выпущен, мы будем использовать пример сверху, будет выпущен 1.1.1. Создается ли 1.1.2-SNAPSHOT или 1.2.0-SNAPSHOT, и является ли эта версия обновленной в помпе?

ответ

1

Снимки в настоящее время находятся в версиях разработки и могут быть нестабильными.

Мы старомодны компания, которая до сих пор используют SVN:

  1. Развитие происходит в стволе и версии в пом файлы моментальных снимков (есть зависимости для некоторых библиотек с открытым исходным кодом, которые имеют фиксированные версии, и мы обновляем их, как только появится новый релиз, и мы уверены в переходе)
  2. Как только мы собираемся выпустить, мы разветвляем багажник и меняем версии в pom, чтобы соответствовать фиксированному (некоторые компании могли отмечать их суффиксом -rc)
  3. Релиз (компании, которые используют -rc, изменят версию в pom на фиксированную)

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

Надеюсь, это ответит на некоторые из ваших вопросов.

Об ответе на управление версиями - все зависит. Пожалуйста, прочитайте об этом подробнее здесь:

http://en.wikipedia.org/wiki/Software_versioning

Best Practice: Software Versioning

+0

Что о зависимостях сторонних? Будет ли когда-нибудь СНАПРОТЬ этих, или это всегда будет выпущенная версия? Во-вторых, все, что недоразвито, будет иметь SNAPSHOTS, только когда отрасль будет создана, SNAPSHOTS станут версиями релиза. Как разработчик, который всегда работает на основной ветке, я обычно никогда не видел выпущенные версии своих собственных .jars в моем пом? – heater

+0

Обычно вы работаете с освобожденными (стабильными) зависимостями третьей стороны. Но если вы работаете с Nokia при интеграции какой-либо новой службы, возможно, у вас есть зависимости моментальных снимков. Но обычно зависимости от моментальных снимков не выводятся из интрасети компании. –

Смежные вопросы