2008-10-29 11 views
3

J'ai un script Ant qui doit extraire un répertoire de Subversion. Cela fonctionne en utilisant svnant/svnkit. Cependant, l'accès Subversion est authentifié et je ne veux pas stocker mon mot de passe utilisateur dans un fichier. Puis-je faire apparaître une boîte de dialogue de mot de passe dans svnkit pop? Ou encore mieux, faites en sorte qu'il utilise la même mise en cache des informations d'identification que subversive/svnkit à l'intérieur d'Eclipse (le nom d'utilisateur peut être lu depuis le fichier build.properties)?Comment faire pour que svnant/svnkit demande un nom d'utilisateur/mot de passe

Je ne peux pas passer à l'authentification par clé publique, car je ne contrôle pas le serveur subversion.

À l'heure actuelle, il est simplement indiqué «svn: authentication cancelled».

Répondre

3

Pour répondre à ma propre question, je peux utiliser la tâche Ant [input] pour demander un mot de passe à l'utilisateur et le stocker dans une propriété qui peut être transmise à la tâche [svn].

<target name="checkout"> 
    <input 
     message="Please enter subversion password for ${username}:" 
     addproperty="password" 
     /> 

    <svn svnkit="${svnkit}" username="${username}" password="${password}"> 
     <checkout url="${urlRepos}/project" destPath="web/" /> 
    </svn> 
</target> 

Malheureusement, cela ne masque pas le mot de passe * * * * *, et je veux encore lire à partir du cache d'identification ...

2

Le Jera Ant Tasks fournissent une tâche [requête] qui prend en charge le mot de passe entrée:

<taskdef name="query" classname="com.jera.anttasks.Query" /> 
<target name="checkout"> 
    <query 
    message="Please enter subversion password for ${username}:" 
    name="password" password="true" 
    /> 

    <svn svnkit="${svnkit}" username="${username}" password="${password}"> 
    <checkout url="${urlRepos}/project" destPath="web/" /> 
    </svn> 
</target> 
1

Utilisez ant-dialogue (http://sourceforge.net/projects/ant-dialog/), il peut afficher une fenêtre AWT java pour que vous puissiez les propriétés d'entrée. Il comporte également un type de champ de saisie *** comme un mot de passe.

4

Un analogue à this answer:

<input message="password:>" addproperty="password"> 
     <handler classname="org.apache.tools.ant.input.SecureInputHandler" /> 
</input> 

Cela fera en sorte que le nom d'utilisateur de la personne n'est pas affichée. Cela nécessite Ant 1.7.1 ou supérieur.

Questions connexes