Как заставить maven использовать учетные данные при запуске плагина зависимостей из командной строки - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть частный репозиторий Maven. Это определено в pom.xml проекта

    <repository>
        <id>some.id</id>
        <url>https://some.host/artifactory/some.id</url>
    </repository>

В моем ~/.m2/settings.xml у меня есть правильный блок аутентификации:

    <server>
        <id>some.id</id>
        <username>pawel.veselov@domain.com</username>
        <password>{some-fancy-password-hash-goes-here}</password>
    </server>

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

Но когда я пытаюсь загрузить артефакт напрямую, Maven даже не рассматривает файл настроек.

mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get \
  -DremoteRepositories=some.id::::https://some.host/artifactory/some.id \
  -Dartifact=groupId:artifactId:1.1.1

Имя пользователя не передается. В выводе отладки я вижу, что BasicRepositoryConnector вызывается без комбинации имени пользователя и пароля.

Таким образом, возникает вопрос - можно ли запустить плагин, чтобы любой процесс, который заставляет Maven рассмотреть использование аутентификации, указанной в его файле настроек, был выполнен?

1 Ответ

0 голосов
/ 20 ноября 2018

Не похоже, что плагин использует сохраненные учетные данные при использовании свойства remoteRepositories. Тестирование с использованием repositoryId вместо этого сработало, как и ожидалось.

mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get -DrepositoryId=some.id -Dartifact=groupId:artifactId:1.1.1

Эффективный пом должен содержать хранилище и URL для репо. Если вы планируете запустить это в пустой директории без pom.xml, то определение вашего репозитория нужно будет перенести в settings.xml

...