Как запретить Maven загружать артефакты из репозитория, когда я просто обновляю pom-версию своего проекта

Я использую Maven как CI и JFrog Artifactory как хранилище моих собственных артефактов и как кеш. Все нормально работает. Я использую плагин Artifactory в Jenkins для запуска загрузки и выгрузки артефактов. Я не могу понять, как справиться со следующим вариантом использования. У меня многомодульный проект. В моем Settings.xml я определил несколько репозиториев снимков, плагинов и релизов. В моем локальном рабочем пространстве я обновил версию pom родительского проекта и его дочерних элементов. Затем я произвел локальную чистую установку. Это не удалось, потому что Maven пытался загрузить артефакты моего проекта из Artifactory, а они, конечно, не существуют, потому что я пытаюсь создать новую версию проекта. Как справиться с этим вариантом использования? Как настроить мой помп или настройки делать? Как это сделать в плагине Artifactory в Jenkins вольным способом?

У меня есть такие сообщения об ошибках:

10:23:28 Не удалось передать. Не удалось найти метаданные com.xxx.xxxx.xxx:my-parent-project:3.0.0-SNAPSHOT/maven-metadata.xml в xxx 10:23:50 [FATAL] Неразрешаемый родительский POM для com.xxx.xxxx.xxx:subpoject1:[unknown-version]: не удалось найти артефакт ..... и 'parent.relativePath' указывает на неправильный локальный POM @ строка 7, столбец 10*

=====================================

конфигурация pom родительского pom

      <modelVersion>4.0.0</modelVersion>
<groupId>com.xxx.xxx.xxx</groupId>
<artifactId>my-parent-project</artifactId>
<version>3.0.0-SNAPSHOT</version>
<packaging>pom</packaging>


<modules>
    <module>../subproject-1</module>
    <module>../subproject-2</module>
</modules>

==================================

конфигурация pom для подпроекта 1

          <artifactId>subproject-1</artifactId>

<parent>
    <groupId>com.xxx.xxx.xxx</groupId>
    <artifactId>my-parent-project</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</parent>

======================================

Вот моя конфигурация settings.xml

      <profile>
        <id>artifactory_profile</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <id>central</id>
                <name>libs-release</name>
                <url>http://xxxxxxxxxxxx:8081/artifactory/libs-release</url>
            </repository>
            <repository>
                <snapshots />
                <id>snapshots</id>
                <name>libs-snapshot</name>
                <url>http://xxxxxxxxxxxx:8081/artifactory/libs-snapshot</url>
            </repository>

            <repository>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
                <id>sing</id>
                <name>sing-virtual-repo</name>
                <url>http://xxxxxxxxxxxx:8081/artifactory/virtual-repo</url>
            </repository>               
        </repositories>

        <pluginRepositories>
            <pluginRepository>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
                <id>central</id>
                <name>plugins-release</name>
                <url>http://xxxxxxxxxxxx:8081/artifactory/plugins-release</url>
            </pluginRepository>
            <pluginRepository>
                <snapshots />
                <id>snapshots</id>
                <name>plugins-release</name>
                <url>http://xxxxxxxxxxxx:8081/artifactory/plugins-release</url>
            </pluginRepository>
        </pluginRepositories>
    </profile>

1 ответ

Если ты бежишь clean install на родительском POM, тогда все будет создано правильно.

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