2016-01-23 4 views
1

Maven - менеджер зависимостей в мире Java. Он поддерживает управление моментальными снимками. В Maven-говорить зависимость называется артефактом. Артефакт с фиксированным номером версии (например, 1.0.1) будет загружен только один раз, потому что он никогда не изменится. Напротив, снимок (например, 1.0.1-Snapshot) будет рассматриваться как движущаяся цель. Это текущая версия для разработки и, скорее всего, изменится в ближайшем будущем. Поэтому он должен обновляться на регулярной основе. С версией моментального снимка вы можете обеспечить текущее состояние текущей разработки как артефакт через ваш механизм доставки артефакта (например, с помощью Nexus или Artifactory). В сочетании с сборкой CI, которая создает артефакты моментальных снимков, вы можете настроить инфраструктуру разработки, чтобы обрабатывать довольно сложные проекты.Возможно ли реализовать обновление снимков с помощью Paket?

В сущности, я считаю, что управление версиями моментальных снимков означает, что менеджер зависимостей должен проверять и загружать артефакты с тегом версии, который он уже скачал ранее.

В мире .NET Nuget является предпочтительным менеджером пакетов. Как менеджер зависимостей, он делает очень жалкую работу. В частности, он не поддерживает управление моментальным снимком: NuGet Cache And Versioning Issues

Paket - альтернативный менеджер пакетов. Это явно лучше подходит для управления зависимостями в реальных проектах, но я не смог найти что-то в документации по управлению версиями моментальных снимков. https://fsprojects.github.io/Paket/

Мой вопрос: возможно ли реализовать обновление снимков с помощью Paket?

Futher объяснение о моментальных версиях:
What exactly is a Maven Snapshot and why do we need it?
http://www.tutorialspoint.com/maven/maven_snapshots.htm
https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN8855

+1

Я бы не сказал «NuGet менеджер Предпочтительнее пакет/зависимость», я бы вместо того, чтобы сказать «NuGet является де-факто репозиторий пакетов». Это, откровенно говоря, боль, чтобы обрабатывать зависимости только с nuget в большом репозитории и во многих файлах проекта. Nuget не поддерживает многоплатформенное таргетирование и не обеспечивает согласованность версий так, как это делает paket. – smoothdeveloper

ответ

3

Олаф, я не думаю, что это поддерживается в paket.dependencies, но рассмотреть эту альтернативу:

-поместить гибкую версию ограничение в paket.dependencies

nuget GreatDependency ~> 1.0.1 

2 Invoke обновление пользовательских Paket на сборке

.paket\paket update nuget GreatDependency 
+0

Если я правильно вас понимаю, тогда paket не может делать реальные снимки версий. Для вашего подхода требуется уникальный тег для каждой сборки. – Olaf

+0

Олаф, на самом деле я не знаю, как справиться с моментальным снимком, вы также можете исследовать наличие дополнительного источника, в котором вы храните свои собственные .nupkg-файлы, этот источник может быть даже текущим хранилищем. Также есть дискуссии о наличии файла переопределения «dev», который может быть уместным. Стоит отметить, что вы отправляете запрос функции как проблему на github: https://github.com/fsprojects/Paket – smoothdeveloper

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