web-dev-qa-db-fra.com

Est-il possible de passer un mot de passe dans Maven Deploy dans la ligne de commande?

C'est la façon dont cela fonctionne actuellement, et c'est le Maven Deploy Plugin Usage

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>
[...]

et ce que j'essaie de réaliser, c'est de trouver un moyen de saisir le nom d'utilisateur et le mot de passe sur la ligne de commande. atteindre mvn deploy -someUser -somePassword

24
stef52

Le settings.xml est considéré comme personnel, c'est pourquoi le nom d'utilisateur et le mot de passe sont stockés dans le (utilisateur -) settings.xml. Donc, en général, il n'y a aucune raison de les passer en argument. (btw, les mots de passe peuvent être stockés cryptés ici) Le maven-deploy-plugin n'a pas la possibilité de les transmettre via la ligne de commande. Cependant, j'ai vu des hacks comme:

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

Et maintenant, vous pouvez faire -Dinternal.repo.username=someUser

26
Robert Scholte

Je vais exposer ici la solution complète, mais la solution de Robert Scholte fonctionne à merveille.

Dans ton ~/.m2/settings.xml vous devriez avoir les éléments suivants

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

et puis vous venez

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

Vous pouvez même utiliser votre variable d'environnement (si vous le faites sur le serveur/conteneur distant, par exemple):

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

1