Если я жестко закодирую значения идентификатора / URL-адреса хранилища непосредственно внутри pom. xml, как показано ниже, это прекрасно работает. Я получаю зависимости.
<project ......>
.......
<repositories>
<repository>
<id>myownservice</id>
<url>https://dev.externalrepo.com/account/devenvironment/_packaging/myownservice/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>
Но если я передаю значения из команды, я с трудом извлекаю зависимости из внешних репозиториев (Azure Артефакты).
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.weather</groupId>
<artifactId>weather-myproject</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>com.company.weather.service</groupId>
<artifactId>weather-service</artifactId>
<version>1.1.9</version>
</parent>
<properties>
<service.destinationID>${service.destinationID}</service.destinationID>
<service.destinationURL>${service.destinationURL}</service.destinationURL>
</properties>
<repositories>
<repository>
<id>${service.destinationID}</id>
<url>${service.destinationURL}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>
Команда ниже используется для передачи параметров:
mvn package -Dservice.destinationID=myownservice -Dservice.destinationURL=https://dev.externalrepo.com/account/devenvironment/_packaging/myownservice/maven/v1
Ниже ошибки, похоже, что она не может заменить параметры динамически:
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for com.company.weather:weather-service:1.0-SNAPSHOT: Could not transfer artifact com.company.weather.service:weather-service:pom:1.1.9 from/to ${service.distFeed
Id} (${service.destinationURL}): Cannot access ${service.destinationURL} with type default using the available connector factories: BasicRepositoryConnectorFactory and 'parent.relativePath' points at wrong lo
cal POM @ line 11, column 13
Как я могу обобщите, то есть разработчики должны использовать его без каких-либо изменений в своем проекте, DevOps должен использовать команду пакета mvn без изменения команды. Пожалуйста, предложите.
Отредактировано : добавлены настройки. xml, используется тот же файл для развертывания артефактов во внешнем хранилище:
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>C:\Users\myusername\.m2\repository</localRepository>
<interactiveMode />
<usePluginRegistry />
<offline />
<pluginGroups />
<servers>
<server>
<id>myownservice</id>
<username>myownserviceusername</username>
<password>dsdsqpyx6cpi3dkb5667andiud3oigi3sdcdkhjv2sgkssdswzfds6azs2aaa</password>
</server>
</servers>
<profiles>
<profile>
<id>distributionManagement</id>
<properties>
<destinationID>myownservice</destinationID>
<destinationURL>https://dev.externalrepo.com/account/devenvironment/_packaging/myownservice/maven/v1</destinationURL>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>distributionManagement</activeProfile>
</activeProfiles>
<mirrors />
<proxies />
</settings>