Для загрузки файла JAR в локальный репозиторий .m2 с помощью settings.xml - PullRequest
0 голосов
/ 16 декабря 2009

У меня есть удаленный репозиторий, который обновляет банку один раз в 5 часов, не меняя номер версии. Pom-файл не может обновляться, так как версия такая же. Каждый раз мне нужно удалять вручную. Есть ли способ, которым я могу получить последние файлы с использованием файла settings.xml.

Ответы [ 3 ]

0 голосов
/ 16 декабря 2009

У меня есть удаленный репозиторий, который обновляет банку раз в 5 часов без изменения номера версии. Файл Pom не может обновляться, так как версия такая же. Каждый раз мне нужно вручную удалить. Есть ли способ получить последние файлы, используя settings.xml.

Нет, нет способа достичь этого. Как только артефакт с фиксированной версией (в отличие от SNAPSHOT) был загружен, он не будет загружен снова, если вы не удалите его из локального репозитория. На самом деле, повторное освобождение банки без изменения ее фиксированного номера версии является практикой ЗЛО и ее следует избегать. Это просто не то, как работает maven, и при этом невозможно предсказать, какую версию люди действительно используют (не прося их явно удалить jar из своего локального хранилища, что является очень слабой практикой), и это приведет к непредсказуемым результатам.

Правильный способ обработки частых выпусков - это либо изменить номер версии (и соответственно обновить POM), либо использовать версию SNAPSHOT, которая является распространенным подходом, используемым во время разработки. По определению, версия SNAPSHOT будет загружена, если в удаленном хранилище будет доступна более новая версия. Это то, что вы ищете, и это отличный способ справиться с этой ситуацией. Подробнее о SNAPSHOT см. Главу 9.3.1.2. Версии SNAPSHOT из Maven: полное руководство .

0 голосов
/ 12 января 2010

Вы можете установить элемент updatePolicy в всегда для хранилища в ваших settings.xml :

<profiles>
  <profile>
    <id>default</id>
    <repositories>
      <repository>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
          <updatePolicy>always</updatePolicy>
        </snapshots>
        <id>snapshots.jboss.org</id>
        <name>Snapshot JBoss Repository for Maven</name>
        <url>http://snapshots.jboss.org/maven2/</url>
        <layout>default</layout>
      </repository>
    </repositories>
  </profile>
</profiles>
0 голосов
/ 16 декабря 2009

Вы управляете этим удаленным хранилищем? Если да, используйте номер версии "-SNAPSHOT".

Или попросите людей, которые контролируют хранилище, сделать это. Это правильный способ сообщить Maven, что зависимость находится в состоянии непрерывного изменения.

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

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