Как заставить Artifactory использовать самый последний (а не самый старый) артефакт Snapshot? - PullRequest
0 голосов
/ 21 ноября 2018

Я использую конвейеры jennkins, maven и artifactory для создания продукта, MyProduct.

Плагин A использует следующий репозиторий моментальных снимков Artifactory.

<distributionManagement>
    <snapshotRepository>
        <id>mvn</id>
        <url>https://bin.mydomain.ch/artifactory/myproduct-repo.mvn/</url>
        <uniqueVersion>false</uniqueVersion>
    </snapshotRepository>
</distributionManagement>

Плагин A создает без проблем ипохоже, что он загружается в репо компании и репозиторий MyProduct.

Где-то в процессе сборки что-то пошло не так, и два репозитория не синхронизированы, в репо компании есть дополнительный артефакт, "* -110.jar &* .110.pm ".

Company Repo
Index of mvn/ch/sbb/myproduct/cloud/myproduct-common/2.2.2-SNAPSHOT

maven-metadata.xml                               21-Nov-2018 01:13  781 bytes
myproduct-common-2.2.2-20181116.162503-110.jar   16-Nov-2018 16:25  83.55 KB
myproduct-common-2.2.2-20181116.162503-110.pom   16-Nov-2018 16:25  2.97 KB
myproduct-common-2.2.2-20181120.235538-34.jar    20-Nov-2018 23:55  85.76 KB
myproduct-common-2.2.2-20181120.235538-34.pom    20-Nov-2018 23:55  3.44 KB
myproduct-common-2.2.2-20181121.002820-35.jar    21-Nov-2018 00:28  85.76 KB
myproduct-common-2.2.2-20181121.002820-35.pom    21-Nov-2018 00:28  3.44 KB
myproduct-common-2.2.2-20181121.011343-36.jar    21-Nov-2018 01:13  85.76 KB
myproduct-common-2.2.2-20181121.011343-36.pom    21-Nov-2018 01:13  3.44 KB

MyProduct Repo  
Index of myproduct-repo.mvn/ch/sbb/myproduct/cloud/myproduct-common/2.2.2-SNAPSHOT

maven-metadata.xml                              21-Nov-2018 01:13  781 bytes
myproduct-common-2.2.2-20181120.235538-34.jar   20-Nov-2018 23:55  85.76 KB
myproduct-common-2.2.2-20181120.235538-34.pom   20-Nov-2018 23:55  3.44 KB
myproduct-common-2.2.2-20181121.002820-35.jar   21-Nov-2018 00:28  85.76 KB
myproduct-common-2.2.2-20181121.002820-35.pom   21-Nov-2018 00:28  3.44 KB
myproduct-common-2.2.2-20181121.011343-36.jar   21-Nov-2018 01:13  85.76 KB
myproduct-common-2.2.2-20181121.011343-36.pom   21-Nov-2018 01:13  3.44 KB

Когда я собираю плагин B, он выбирает зависимости из репо компании, и по некоторым причинам он выбирает снимок 110, который является самым старым, и я получаю ошибку компиляции.Репо компании maven-metadata.xml указывает на артефакт 110, тогда как репозиторий maven-metadata.xml MyProduct указывает на артефакт 37 (самый последний и самый большой).

Как я могу указать плагину B использовать MyProductРепо, или, по крайней мере, взять новейший артефакт SNAPSHOT?

Есть ли какая-либо магия конвейера Дженкинса, которую я могу использовать для эмуляции false, другими словами, отправка в хранилище без временных отметок (а также для их извлечения)?

Как я могу воссоздать maven-metadata.xml в репо компании?

1 Ответ

0 голосов
/ 22 ноября 2018

Как я могу сказать плагину B использовать MyProduct Repo или, по крайней мере, взять самый новый артефакт SNAPSHOT?

<distributionManagement>
    <snapshotRepository>
        <id>mvn</id>
        <url>https://bin.mydomain.ch/artifactory/myproduct-repo.mvn/</url>
        <uniqueVersion>false</uniqueVersion>
        <updatePolicy>always</updatePolicy>
    </snapshotRepository>
</distributionManagement>

Добавить updatePolicy и установить для него значение "всегда"».Это всегда будет извлекать последнюю версию зависимостей из указанного URL.

Установка для uniqueVersion значения false - это совсем другая тема (нарушение Semver).

Есть ли какая-то магия конвейера Jenkins?что я могу использовать для эмуляции false, другими словами, отправка в хранилище без временных отметок (и также извлечение их)?

Я бы никогда не рекомендовал покончить с отметками времени в Artifactory.Эта информация ценна по ряду причин.Я понимаю, что вы просто ищете решение своей проблемы, но, удаляя временные метки, вы, по сути, наносите лейкопластырь на открытую рану.

Как я могу воссоздать метаданные maven.XML на репо компании?

Не уверен, что вы имеете в виду здесь.Это обновляется автоматически.Вы не должны заставлять Maven что-либо делать с этим файлом.

...