Возможно ли передать пароль в 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
Ответы
Ответ 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>