Можно ли передать пароль в 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
4 ответа
settings.xml
считается личным, поэтому по этой причине имя пользователя + пароль хранятся в (user-)settings.xml
, Так что, в общем, нет причин передавать их в качестве аргумента. (кстати, пароли могут храниться здесь в зашифрованном виде) maven-deploy-plugin
не имеет возможности передавать их через командную строку. Тем не менее, я видел такие хаки, как:
<username>${internal.repo.username}</username>
И теперь вы можете сделать -Dinternal.repo.username=someUser
Я выложу здесь полное решение, но в основном решение Роберта Шолте работает великолепно.
В вашем ~/.m2/settings.xml
у вас должно быть следующее
<settings>
<servers>
<server>
<id>${repo.id}</id>
<username>${repo.login}</username>
<password>${repo.pwd}</password>
</server>
</servers>
</settings>
а потом ты просто
mvn -Drepo.id=myRepo -Drepo.login=someUser -Drepo.pwd=somePassword clean install
Вы даже можете использовать свою переменную среды (например, если вы делаете это на удаленном сервере / контейнере):
mvn -Drepo.id=$REPO_ID -Drepo.login=$REPO_LOGIN -Drepo.pwd=$REPO_PWD clean install
Это тоже работает:
<server>
<id>${repo.id}</id>
<username>${repo.username}</username>
<password>${repo.password}</password>
</server>
У меня это работает нормально, мы можем определить переменную имени пользователя и пароля по своему выбору, но мы должны использовать
repositoryId
переменная для идентификатора в файле settings.xml.
Он был протестирован с версией maven «Apache Maven 3.6.3 (Red Hat 3.6.3-13)».
Добавьте этот фрагмент в settings.xml:
<servers>
<server>
<id>${repositoryId}</id>
<username>${repo.login}</username>
<password>${repo.pwd}</password>
</server>
</servers>
Запустите этот фрагмент, чтобы загрузить файл на Nexus:
mvn deploy:deploy-file -DrepositoryId=<repoid> -Drepo.login=<username> -Drepo.pwd=<password> -Durl=http://<url of Nuxus>:<port>/repository/<repository space> -Dfile=<file location> -DgroupId=<Group Id> -DartifactId=<artfact id> -Dversion=<version> -Dpackaging=<packaging> -Dclassifier=<classifier> -X