L'externalisation SCM des informations d'identification avec Maven
Est-il une méthode pour extérioriser ma SCM informations d'identification de sorte qu'ils ne sont pas stockés dans le POM du projet? Le problème étant que si elles sont contenues dans le POM du projet, ils seront visibles par tous lors du déploiement du projet.
Vous devez vous connecter pour publier un commentaire.
Ce qui peut être fait pour de nombreux de la SCM fournisseurs, je suppose Subversion que la mise en œuvre basé sur votre tag.
Vous pouvez définir votre Subversion paramètres $user.home/.scm/svn-settings.xml (ou [maven home]/conf/.scm/svn-settings.xml, même si cela veut dire qu'ils vont toujours être visible par les utilisateurs du système)
Dans ce fichier, vous pouvez définir votre nom d'utilisateur et mot de passe pour le serveur Subversion. Le contenu de ce fichier devrait ressembler à ceci:
Vous pouvez définir d'autres propriétés dans ce fichier de configuration. Pour plus de détails, voir "Configuration de Fournisseur de" section de Subversion SCM page.
Autres SCM fournisseurs ont une approche similaire, par exemple dans le CVS les paramètres sont stockés dans cvs-settings.xml dans le même emplacement (l' .scm dossier), voir la CVS SCM page pour plus de détails.
Pour certains SCM fournisseurs, vous pouvez spécifier vos informations d'identification dans le
<servers>
section desettings.xml
. Comme un<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:Alors je peux spécifier mes informations d'identification dans
settings.xml
en tant que tel:scm:git:ssh://[email protected]/{account}/{project}
, puis dans mon settings.xml j'utilise<id>bitbucket.org</id><privateKey>/c/Users/neil.hunt/.ssh/id_rsa</privateKey>
project.scm.id
est ignoré lors de l'utilisation de labuildnumber-plugin
.Je me rends compte que cette question est ancienne et les réponses est acceptée, mais par souci d'exhaustivité souhaite donner à l'alternative suivante, qui pourrait être préférée dans certains cas.
Motivation
Il donc arrive parfois que le même serveur est utilisée à plusieurs fins, ce qui nécessite des informations d'identification utilisateur. Par exemple, il est utilisé pour l'hébergement des Nexus-driven repository Maven ainsi que d'un serveur SVN qui ont des identifiants différents pour le même utilisateur. Dans de tels cas, il y aurait besoin d'être plusieurs
<server>
entrées avec le mêmeid
etusername
, mais différentspassword
. Ceci, cependant, n'est pas viable.Solution
Maven version plugin prend en charge les drapeaux
username
etpassword
qui peuvent être fournis dans le cadre de larelease:prepare
etrelease:perform
commandes. Les valeurs pourusername
etpassword
doit correspondre à l'respectives SVN informations d'identification.J'ai réussi à obtenir que cela fonctionne à l'aide de la solution fournie ci-dessus c'est à dire l'ajout d'une nouvelle configuration de serveur à mon settings.xml et en donnant le nom de domaine que l'id.
En plus de la réponse précédente, si vous spécifiez un port dans l'URL ce doivent également être inclus dans le serveur.id. Une autre bizarrerie que j'ai trouvé, c'est que vous avez besoin de mettre le mot entre guillemets s'il contient des caractères qui pourraient interférer avec l'appel en ligne de commande.
Vous ne pouvez pas utiliser la ligne suivante dans votre $utilisateur.home/.scm/svn-paramètres.xm comme il n'est pas valide! Il n'y a pas des éléments tels que
<user>
et<password>
sous<svn-settings>
(comme spécifié ici )