Как запретить 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, тогда все будет создано правильно.