Снимок метаданных классификатора артефактов 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).
До тех пор я могу только предложить, чтобы вы создали оба артефакта с разными идентификаторами артефактов.

Другие вопросы по тегам