Question

Y at-il une méthode pour extérioriser mes lettres de créance de SCM de sorte qu'ils ne sont pas stockés dans le POM du projet? Le problème étant si elles sont contenues dans le POM du projet, ils seront visibles à tous lorsque le projet est déployé.

Était-ce utile?

La solution

Cela peut être fait pour la plupart des fournisseurs de SCM, je suppose Subversion que la mise en œuvre en fonction de votre balise.

Vous pouvez définir vos paramètres de Subversion dans user.home de $ / .scm / svn-settings.xml (ou [home maven] /conf/.scm/svn-settings.xml, bien que cela signifie qu'ils seront toujours visibles aux utilisateurs du système)

Dans ce fichier, vous pouvez définir votre nom d'utilisateur et mot de passe pour le serveur Subversion. devrait ressembler le contenu du fichier ceci:

<svn-settings>
  <user>[svn user]</user>
  <password>[svn password]</password>
</svn-settings>

Vous pouvez définir d'autres propriétés dans ce fichier de configuration. Pour plus de détails, voir la section "Configuration du fournisseur" de Subversion SCM .

D'autres fournisseurs SCM ont une approche similaire, par exemple dans CVS les paramètres sont stockés dans cvs-settings.xml dans le même endroit (le dossier .scm), voir Page CVS SCM pour plus de détails.

Autres conseils

Pour certains fournisseurs de SCM vous pouvez spécifier vos informations d'identification dans la section <servers> de settings.xml. En tant que <id> utiliser le nom de domaine de votre référentiel. Cela fonctionne pour moi avec Mercurial. SubVersion fonctionne aussi.

Par exemple, compte tenu de mon pom.xml contient:

<scm>
  <connection>scm:hg:http://jukito.googlecode.com/hg/</connection>
  <developerConnection>scm:hg:https://jukito.googlecode.com/hg/</developerConnection>
  <url>http://code.google.com/p/jukito/source/browse/</url>
</scm>

Ensuite, je peux préciser mes lettres de créance en tant que tel settings.xml:

<server>
  <id>jukito.googlecode.com</id>
  <username>philippe.beaudoin</username>
  <password>1234567890ABC</password>
</server>

Je me rends compte que cette question est ancienne et les réponses est acceptée, mais par souci d'exhaustivité voudrait offrir l'alternative suivante, ce qui pourrait être préféré dans certains cas.

Motivation

Il arrive donc parfois que l'on utilise le même serveur pour plusieurs fins, ce qui nécessite différentes informations d'identification utilisateur. Par exemple, il est utilisé pour l'hébergement repository Maven conduit Nexus ainsi qu'un serveur SVN qui ont des informations d'identification différentes pour le même utilisateur. Dans de tels cas, il y aurait besoin d'être plusieurs entrées de <server> avec le même id et username, mais différents password. Cependant, cela n'est pas viable.

Solution

plugin Maven libération prend en charge les drapeaux username et password qui peuvent être fournis dans le cadre des commandes release:prepare et release:perform. Les valeurs de username et password doivent correspondre aux informations d'identification SVN respectifs.

mvn release:prepare -Dusername=[username] -Dpassword=[password] 

J'ai réussi à obtenir que cela fonctionne en utilisant la solution fournie ci-dessus à savoir l'ajout d'une nouvelle configuration de serveur à mon settings.xml et de donner le nom de domaine comme id.

<server>
  <id>domain.name:port</id>
  <username>[username]</username>
  <password>[password]</password>
</server>

En plus de la réponse précédente, si vous spécifiez un port dans votre URL ce besoin également être inclus dans le server.id. Une autre bizarrerie que j'ai trouvé est que vous avez besoin de mettre le mot de passe entre guillemets si elle contient des caractères qui pourraient interférer avec l'appel en ligne de commande.

Vous ne pouvez pas utiliser les éléments suivants dans votre user.home de $ / .scm / svn-settings.xm comme il est pas valide! Il n'y a pas d'éléments tels que <user> et <password> sous <svn-settings> (tel que spécifié )

<svn-settings>
  <user>[svn user]</user>
  <password>[svn password]</password>
</svn-settings>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top