Maven nexus v=последняя версия не работает


У меня есть локальный репозиторий Maven nexus, во время выполнения я загружаю / извлекаю jar / war файл из maven repo и копирую его в tomcat. Я использую следующий url для загрузки файла jar / war.

http://localhost/maven/nexus/service/local/artifact/maven/redirect?r=releases&g=com.rdc.app&a=rum&v=LATEST&p=war&c

Когда я передаю param v=1.2.4, я могу загрузить конкретную версию war, Если я хочу последнюю версию, я обнаружил, что v=LATEST вернет последнюю версию файла jar / war в репо.

Проблема в том, что последняя версия в maven repo - 12.53.3 когда я использую v=LATEST, он загружает 12.46.1 i для обновления 12.53.3 снова и снова пробовал v=последний, но результат был таким же, как и раньше.

Также, если последний фляги моментальных снимков, затем отпустить банку/война в=последний релиз только поддержка версий.

Я пытался следовать документации, но, кажется, это не работает.

repository.sonatype.org/nexus-core-documentation-plugin/core/docs/rest.artifact.maven.redirect.html
3 6

3 ответа:

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

Это своего рода ошибка, если вы спросите меня. Я тоже сталкивался с этим.

В принципе, последняя версия не означает "последняя версия", как в 1.2.3 по сравнению с 1.2.2, это означает "версия артефакта, который был развернут совсем недавно". Итак , если у вас есть несколько ветвей проекта и артефакты развертываются вашим сервером непрерывной интеграции, вы не можете доверять последней версии.

Обновление: Проверьте ответ Тари ака манги, для обновленного поведения в Nexus.

Некоторые предполагают (например: @carlspring), что "последняя" на самом деле не указывает на самую высокую версию, доступную, учитывая как релизы, так и snaphots; они предполагают, что это самая последняя развернутая, но я не согласен. Вот что происходит с Sonatype Nexus™ 2.11.2-0:

Предполагая, что начнем с:

<metadata modelVersion="1.1.0">
    <groupId>com.acme</groupId>
    <artifactId>versioningtest</artifactId>
    <versioning>
        <latest>1.0.3-SNAPSHOT</latest>
        <release>1.0.1</release>
        <versions>
            <version>1.0.0-SNAPSHOT</version>
            <version>1.0.0</version>
            <version>1.0.1-SNAPSHOT</version>
            <version>1.0.1</version>
            <version>1.0.2-SNAPSHOT</version>
            <version>1.0.3-SNAPSHOT</version>
        </versions>
        <lastUpdated>20150928081006</lastUpdated>
    </versioning>
</metadata>

(A) Публикация нового 1.0.2-SNAPSHOT только увеличивает метку времени" lastupdated", она не изменяет"latest".

Теперь публикуем 1.0.3:

<metadata>
    <groupId>com.acme</groupId>
    <artifactId>versioningtest</artifactId>
    <versioning>
        <latest>1.0.3</latest>
        <release>1.0.3</release>
        <versions>
            <version>1.0.0-SNAPSHOT</version>
            <version>1.0.0</version>
            <version>1.0.1-SNAPSHOT</version>
            <version>1.0.1</version>
            <version>1.0.2-SNAPSHOT</version>
            <version>1.0.3-SNAPSHOT</version>
            <version>1.0.3</version>
        </versions>
        <lastUpdated>20150928081408</lastUpdated>
    </versioning>
</metadata>

(B) От здесь публикация нового 1.0.2-SNAPSHOT только увеличивает метку времени" lastupdated", она не изменяет"latest". Кроме того, публикация 1.0.2 только увеличивает метку времени" lastupdated", она не изменяет "latest":

<metadata>
    <groupId>com.acme</groupId>
    <artifactId>versioningtest</artifactId>
    <versioning>
        <latest>1.0.3</latest>
        <release>1.0.3</release>
        <versions>
            <version>1.0.0-SNAPSHOT</version>
            <version>1.0.0</version>
            <version>1.0.1-SNAPSHOT</version>
            <version>1.0.1</version>
            <version>1.0.2-SNAPSHOT</version>
            <version>1.0.2</version>
            <version>1.0.3-SNAPSHOT</version>
            <version>1.0.3</version>
        </versions>
        <lastUpdated>20150928081620</lastUpdated>
    </versioning>
</metadata>

Итак, в заключение:

  • Между двумя снимками, даже если младший приходит более поздним, самый старый опубликованный выиграет последнее место, если у него есть более высокая версия. А)

  • Между выпуском и моментальным снимком, более высокая версия выигрывает последнее место. (B)

Следовательно, Sonatype Nexus™ 2.11.2-0, "последний" указывает на самую высокую версию, доступную, учитывая как релизы, так и snaphots.

Q. E. D.