как игнорировать зависимость SNAPSHOT во время сборки Maven? - PullRequest
0 голосов
/ 12 декабря 2018

Мы пытаемся создавать модули только с релизными версиями.

Мы настроили не использовать SNAPSHOTS из удаленного репозитория на settings.xml:

<repositories>
    <repository>
      <id>public</id>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <url>http://nexus...

Но при запуске mvn package мы получаемNon-resolvable parent POM [...] Could not find artifact [...]:pom:0.1.2-SNAPSHOT.

Эта ошибка относится к maven-metadata-public.xml в локальном хранилище.Maven «знает», что должно быть 0.1.2-SNAPSHOT:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>***</groupId>
  <artifactId>***</artifactId>
  <versioning>
    <latest>0.1.2-SNAPSHOT</latest>
    <release>0.1.1</release>
    <versions>
      <version>0.1.1</version>
      <version>0.1.2-SNAPSHOT</version>
    </versions>
    <lastUpdated>20181212082933</lastUpdated>
  </versioning>
</metadata>

Как заставить Maven использовать версию из release вместо latest?

Уже пробовал: versions:use-releases versions:use-latest-releases

Возможный обходной путь - добавить репозиторий группы Nexus, содержащий только релизы.- Но мы бы хотели решить эту проблему на стороне клиента.- Также snapshots.enabled = false будет избыточным.

1 Ответ

0 голосов
/ 13 декабря 2018

Хотя использование диапазонов версий все еще возможно, в настоящее время это довольно необычно.

Вы можете попытаться вызвать versions:resolve-ranges перед сборкой, чтобы версии были преобразованы в конкретные версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...