Maven - выпуск внешних репозиториев - PullRequest
0 голосов
/ 25 апреля 2020

Если я жестко закодирую значения идентификатора / 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...