Как вы привязываете версии артефактов Maven в диспетчере репозиториев Nexus?
Я строю против различных артефактов Lucene и Solr Maven из репозитория Maven Apache, размещенного в диспетчере репозиториев Nexus. Артефакты имеют версию 4.0-SNAPSHOT
и обновляются ежедневно, причем старые артефакты регулярно удаляются.
Мне было интересно, как привязать артефакты к определенной дате, поэтому всякий раз, когда клиент Maven запрашивал solr-core 4.0-SNAPSHOT
, он получал ту же версию, даже если была более новая вверх по течению.
Я также хотел бы знать, как явно обновить до последняя версия 4.0-SNAPSHOT
, но все еще сохраняет все предыдущие версии, которые были загружены.
В частности, репозиторий" Apache Snapshots " является хранилищем по умолчанию, которое устанавливается при установке Nexus.
2 ответа:
При развертывании моментального снимка на сервере репозитория каждое новое развертывание фактически развертывается как версия с отметкой времени и добавленным номером итератора. Если вы хотите использовать определенную версию, вы просто используете версию временной метки снимка, а не-снимок.
Например, посмотрите на https://repository.apache.org/content/groups/snapshots/org/apache/maven/artifact/maven-artifact/3.0-alpha-2-SNAPSHOT/
Вы можете использовать этот артефакт как
<groupId>org.apache.maven.artifact</groupId> <artifactId>maven-artifact</artifactId> <version>3.0-alpha-2-SNAPSHOT</version>
Что бы измените его каждый раз, когда развертывается новый снимок, или вы можете использовать
<groupId>org.apache.maven.artifact</groupId> <artifactId>maven-artifact</artifactId> <version>3.0-alpha-2-20090214.020928-1</version>
Которая останется прежней. Однако имейте в виду, что хранилище моментальных снимков не является статичным по своей природе, и эти артефакты потенциально могут полностью исчезнуть. Делайте это только в том случае, если вы используете внутренний сервер репозитория, которым вы можете управлять, и поэтому убедитесь, что эти снимки не исчезают.
Другой способ сделать это-фактически вырезать релиз и использовать его..
Вы можете использоватьversions maven plugin для привязки к определенной версии SNAPSHOT, которая действительна только до тех пор, пока снимок доступен в соответствующем репозитории. Но я бы рекомендовал использовать менеджер репозиториев и получить снимок в локальный репозиторий и работать с ними вместо этого. Что также возможно, так это получить определенный снимок и сделать из него внутренний релиз для exmaple 4.0.1-INTERNAL like и сделать его более доступным на основе этого.