Подтвердить что ты не робот

Возможно ли передать пароль в Maven Deploy в командной строке?

Это то, как он работает в настоящий момент, и Использование плагина Maven Deploy

pom.xml

[...]
  <distributionManagement>
    <repository>
      <id>internal.repo</id>
      <name>MyCo Internal Repository</name>
      <url>Host to Company Repository</url>
    </repository>
  </distributionManagement>
[...]

settings.xml

[...]
    <server>
      <id>internal.repo</id>
      <username>someUser</username>
      <password>somePassword</password>
    </server>
[...]

и я пытаюсь найти способ ввода имени пользователя и пароля в командной строке. для достижения mvn deploy -someUser -somePassword

4b9b3361

Ответ 1

settings.xml считается персональным, поэтому по этой причине имя пользователя + пароль хранится в (user -) settings.xml. Так что вообще нет причин передавать их в качестве аргумента. (Кстати, пароли могут быть зашифрованы здесь). maven-deploy-plugin не имеет возможности передавать их через командную строку. Однако я видел такие хаки, как:

<username>${internal.repo.username}</username>

И теперь вы можете сделать -Dinternal.repo.username=someUser

Ответ 2

Я выложу здесь полное решение, но в основном решение Роберта Шольте работает превосходно.

В вашем ~/.m2/settings.xml у вас должно быть следующее

<settings>
    <servers>
        <server>
            <id>internal.repo</id>
            <username>${repo.login}</username>
            <password>${repo.pwd}</password>
        </server>
    </servers>
</settings>  

а потом ты просто

mvn -Drepo.login=someUser -Drepo.pwd=SomePassword clean install

Вы даже можете использовать свою переменную окружения (например, если вы делаете это на удаленном сервере/контейнере):

mvn -Drepo.login=$REPO_LOGIN -Drepo.pwd=$REPO_PWD clean install

Ответ 3

Это также работает:

<server>
  <id>${repo.id}</id>
  <username>${repo.username}</username>
  <password>${repo.password}</password>
</server>