Je suis en train de stocker mes informations d'identification maven dans ~/.m2/settings.xml
:
<server>
<id>my_server_id</id>
<username>my_username</username>
<password>my_password</password>
</server>
Cependant, je ne suis pas satisfait d'avoir le mot de passe en texte clair, car le mot de passe est utilisé pour d'autres services, je préférerais donc Inviter l'utilisateur à saisir le mot de passe lors de l'exécution d'un mvn deploy
. Je déploie sur une installation Nexus OSS via https.
Je sais que le mot de passe peut être crypté , mais puisque le cryptage est réversible , cette solution ne convient pas à mon cas.
Existe-t-il un moyen de demander un mot de passe à Maven lors d'un déploiement https?
Comme mentionné, cette fonctionnalité n'est actuellement pas prise en charge dans le plugin. Numéro MDEPLOY-51 demande en fait cette amélioration:
Autorisez l'utilisateur à fournir un mot de passe de nom d'utilisateur pour un serveur distant lorsque Est appelé l'objectif de déploiement. Actuellement, vous devez ajouter le nom d'utilisateur et le mot de passe du référentiel Au fichier server.xml. Il serait utile que Puisse demander à l'utilisateur un nom d'utilisateur et un mot de passe sur la ligne de commande . Le mot de passe doit être masqué lors de la saisie.
Je suggérerais de voter pour cette amélioration, ou éventuellement de mettre en œuvre la fonctionnalité vous-même.
Le maven-deploy-plugin
n'a pas de mode interactif, donc non, vous ne pouvez pas le faire facilement. L'approche habituelle consiste à chiffrer les informations d'identification dans votre fichier settings.xml
.
Si vous pensez vraiment avoir besoin de cette fonctionnalité, vous pouvez toujours extraire les sources du plug-in, ajouter le mode interactif vous-même, puis contribuer à la communauté.
Au lieu d'interroger l'utilisateur au moment de l'exécution, vous pouvez transmettre le nom d'utilisateur et le mot de passe comme arguments.
Essayez ce mvn quel que soit le nom d'utilisateur -Dusername -Dpassword
puis dans le pom.xml $ {username} et $ {password}