почему я должен удалить зависимость из моего pom, прежде чем добавлять ее обратно и устанавливать, чтобы получить последнюю версию моего пакета maven?

У меня есть пакет maven, который я разместил в реестре пакетов GitHub.

Всякий раз, когда я обновляю пакет, я запускаю mvn deploy для публикации изменений, но если я просто запускаю mvn install в зависимом приложении, похоже, не устанавливается последняя версия пакета. Только после удаления pom.xml, а затем загрузки изменений в IntelliJ, затем добавления его обратно и запуска mvn install кажется, что новая публикация пакета получена.

Это мой settings.xml файл:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <activeProfiles>
        <activeProfile>github</activeProfile>
    </activeProfiles>

    <profiles>
        <profile>
            <id>github</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>https://repo1.maven.org/maven2</url>
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>true</enabled></snapshots>
                </repository>
                <repository>
                    <id>github</id>
                    <name>GitHub COMPANY NAME Apache Maven Packages</name>
                    <url>https://maven.pkg.github.com/***********</url>
                </repository>
            </repositories>
        </profile>
    </profiles>

    <servers>
        <server>
            <id>github</id>
            <username>TaylorBurke</username>
            <password>****************</password>
        </server>
    </servers>
</settings>

Нужно ли обновлять версию пакета каждый раз, когда я публикую изменение? Может быть, проблема с конфигурацией Maven? Или, возможно, это природа плагина Maven в IntelliJ?


person Taylor Burke    schedule 13.07.2020    source источник
comment
Вы меняли версию между каждой установкой?   -  person khmarbaise    schedule 13.07.2020
comment
Используйте зависимость SNAPSHOT при разработке, чтобы не обновлять версию каждый раз.   -  person CrazyCoder    schedule 13.07.2020
comment
@khmarbaise Я сохраняю версию в pom.xml зависимого приложения неизменной, потому что я не обновляю версию в пакете каждый раз, когда вношу изменения. Должна ли я быть?   -  person Taylor Burke    schedule 13.07.2020
comment
@CrazyCoder Сейчас у меня версия 0.0.3-SNAPSHOT   -  person Taylor Burke    schedule 13.07.2020
comment
возможно, мне нужно добавить ‹releases›‹enabled›false‹/enabled›‹/releases› ‹snapshots›‹enabled›true‹/enabled›‹/snapshots› в файл settings.xml в репозитории github?   -  person Taylor Burke    schedule 13.07.2020
comment
В Maven есть политика обновления по умолчанию (обычно она устанавливается в settings.xml). Также это должно быть настроено в IntelliJ. Или вы можете изменить поведение в файле settings.xml, который также будет подхвачен IntelliJ.   -  person khmarbaise    schedule 13.07.2020


Ответы (1)


Установите этот флажок, если вы хотите, чтобы IntelliJ IDEA обновляла снимки на sync и используйте зависимость SNAPSHOT, если вы не обновляете версию:

  • Настройки (Настройки в macOS) | Сборка, выполнение, развертывание | Инструменты сборки | Мавен | Всегда обновлять снимки.

Обязательно нажмите кнопку Повторно импортировать в окне инструмента Maven, чтобы синхронизировать изменения.

person CrazyCoder    schedule 13.07.2020
comment
Я надеялся, что это будет так, поскольку флажок ранее не был установлен, но, похоже, проблема не устранена даже после перезапуска IntelliJ... - person Taylor Burke; 13.07.2020
comment
Вы принудительно реимпортировали? - person CrazyCoder; 13.07.2020