Снимок метаданных классификатора артефактов maven 3.0
Моя проблема "простая", но я до сих пор не нашел решения:
У меня есть 2 проекта.
- Проект A построен с помощью классификатора (называемого dev или pro) с помощью определенного профиля
Проект B с зависимостью от A (используя классификатор dev или pro)
Я выполняю установку цели на A с помощью классификатора (dev)
- Я повторно выполнить цель установки с другим классификатором (Pro)
Затем я компилирую проект B (и ставлю зависимость в A с помощью классификатора DEV)
Это работает хорошо.
Но когда я делаю то же самое с артефактом (цель развертывания), он не работает(а хранилище настроено как "уникальное")
Это не работает, потому что артефакт? Maven зависимость? пытается загрузить A с классификатором dev и последней отметкой времени, номером сборки чего угодно.
Но эта "логика" неверна, потому что последняя отметка времени действительна для классификатора Pro!
Я прочитал metadata.xml между локальным хранилищем и хранилищем артефактов. Есть похожие (но не точно такие же)
Что я не прав? Спасибо, парни!
- Maven версия: 3.03
- Артефакторная версия: 2.3.4.1
1 ответ
Это может быть связано с тем, что во время написания этого ответа Artifactory генерирует метаданные типа Maven 2, которые в отличие от более нового типа, генерируемого Maven 3, не определяют отдельную "последнюю версию" для каждого классификатора \ типа Артефакт.
То есть, в то время как метаданные Maven 2 определяют последнюю сборку и известную историю:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.jfrog.test</groupId>
<artifactId>multi1</artifactId>
<version>2.1-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20110928.112713</timestamp>
<buildNumber>14</buildNumber>
</snapshot>
<lastUpdated>20110928112718</lastUpdated>
</versioning>
</metadata>
Maven 3 указывает последнюю сборку для каждого типа артефакта и классификатора:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.jfrog.test</groupId>
<artifactId>multi1</artifactId>
<version>2.1-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20110928.112713</timestamp>
<buildNumber>14</buildNumber>
</snapshot>
<lastUpdated>20110928112718</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<classifier>tests</classifier>
<extension>jar</extension>
<value>2.1-20110928.112713-14</value>
<updated>20110928112713</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>2.1-20110928.112713-14</value>
<updated>20110928112713</updated>
</snapshotVersion>
...
</snapshotVersions>
</versioning>
</metadata>
В настоящее время планируется поддержка создания метаданных Maven 3 для следующей версии Artifactory (2.3.5).
До тех пор я могу только предложить, чтобы вы создали оба артефакта с разными идентификаторами артефактов.