svnant et protocole svn+ssh
Bonjour,
Je me créé pour le travail et pour moi-même un script ant permettant de taguer automatiquement sur SVN. J'ai testé au boulot et le script fonctionne bien avec le protocole svn.
exemple d'adresse de dépôt : svn://IP/NOM_DEPOT/NOM_PROJET
Par contre j'ai quelques difficulté pour faire fonctionner mon script Ant avec un protocol svn+ssh.
J'ai eu au premier coup l'erreur suivante.
Code:
java.lang.NoClassDefFoundError: com/trilead/ssh2/ServerHostKeyVerifier
Après une rapide recherche, je suis allé cherché la librairie trilead-ssh2-build213-svnkit-1.3-patch.jar et je l'ai ajouté au path d'exécution de mon script.
Maintenant j'ai le message d'erreur suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| [svn] svn: authentication cancelled
[svn] svn: authentication cancelled
[svn] <Copy> failed.
[svn] the execution failed for some reason. cause: Can't copy
[svn] at org.tigris.subversion.svnant.commands.SvnCommand.ex(Unknown Source)
[svn] at org.tigris.subversion.svnant.commands.Copy.execute(Unknown Source)
[svn] at org.tigris.subversion.svnant.commands.SvnCommand.executeCommand(Unknown Source)
[svn] at org.tigris.subversion.svnant.SvnTask.executeImpl(Unknown Source)
[svn] at org.tigris.subversion.svnant.SvnTask.execute(Unknown Source)
[svn] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[svn] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[svn] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[svn] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[svn] at java.lang.reflect.Method.invoke(Method.java:597)
[svn] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[svn] at org.apache.tools.ant.Task.perform(Task.java:348)
[svn] at org.apache.tools.ant.Target.execute(Target.java:357)
[svn] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[svn] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[svn] at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[svn] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[svn] at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[svn] at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[svn] at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:423)
[svn] at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:137)
[svn] Caused by: org.tigris.subversion.svnclientadapter.SVNClientException: org.tigris.subversion.javahl.ClientException: svn: authentication cancelled
[svn] at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.copy(AbstractJhlClientAdapter.java:824)
[svn] at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.copy(AbstractJhlClientAdapter.java:790)
[svn] ... 20 more
[svn] Caused by: org.tigris.subversion.javahl.ClientException: svn: authentication cancelled
[svn] at org.tigris.subversion.javahl.JavaHLObjectFactory.throwException(JavaHLObjectFactory.java:778)
[svn] at org.tmatesoft.svn.core.javahl.SVNClientImpl.throwException(SVNClientImpl.java:1850)
[svn] at org.tmatesoft.svn.core.javahl.SVNClientImpl.copyOrMove(SVNClientImpl.java:800)
[svn] at org.tmatesoft.svn.core.javahl.SVNClientImpl.copy(SVNClientImpl.java:724)
[svn] at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.copy(AbstractJhlClientAdapter.java:821)
[svn] ... 21 more
[svn] Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: authentication cancelled
[svn] at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37)
[svn] at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32)
[svn] at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:211)
[svn] at org.tmatesoft.svn.core.internal.io.svn.SVNSSHConnector.open(SVNSSHConnector.java:105)
[svn] at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.open(SVNConnection.java:74)
[svn] at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:1242)
[svn] at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.testConnection(SVNRepositoryImpl.java:95)
[svn] at org.tmatesoft.svn.core.io.SVNRepository.getRepositoryRoot(SVNRepository.java:319)
[svn] at org.tmatesoft.svn.core.internal.wc.SVNCopyDriver.copyReposToRepos(SVNCopyDriver.java:196)
[svn] at org.tmatesoft.svn.core.internal.wc.SVNCopyDriver.setupCopy(SVNCopyDriver.java:629)
[svn] at org.tmatesoft.svn.core.wc.SVNCopyClient.doCopy(SVNCopyClient.java:426)
[svn] at org.tmatesoft.svn.core.javahl.SVNClientImpl.copyOrMove(SVNClientImpl.java:795)
[svn] ... 23 more
[svn] --- Nested Exception ---
[svn] org.tigris.subversion.svnclientadapter.SVNClientException: org.tigris.subversion.javahl.ClientException: svn: authentication cancelled
[svn] at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.copy(AbstractJhlClientAdapter.java:824)
[svn] at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.copy(AbstractJhlClientAdapter.java:790)
[svn] at org.tigris.subversion.svnant.commands.Copy.execute(Unknown Source)
[svn] at org.tigris.subversion.svnant.commands.SvnCommand.executeCommand(Unknown Source)
[svn] at org.tigris.subversion.svnant.SvnTask.executeImpl(Unknown Source)
[svn] at org.tigris.subversion.svnant.SvnTask.execute(Unknown Source)
[svn] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[svn] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[svn] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[svn] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[svn] at java.lang.reflect.Method.invoke(Method.java:597)
[svn] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[svn] at org.apache.tools.ant.Task.perform(Task.java:348)
[svn] at org.apache.tools.ant.Target.execute(Target.java:357)
[svn] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[svn] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[svn] at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[svn] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[svn] at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[svn] at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[svn] at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:423)
[svn] at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:137)
[svn] Caused by: org.tigris.subversion.javahl.ClientException: svn: authentication cancelled
[svn] at org.tigris.subversion.javahl.JavaHLObjectFactory.throwException(JavaHLObjectFactory.java:778)
[svn] at org.tmatesoft.svn.core.javahl.SVNClientImpl.throwException(SVNClientImpl.java:1850)
[svn] at org.tmatesoft.svn.core.javahl.SVNClientImpl.copyOrMove(SVNClientImpl.java:800)
[svn] at org.tmatesoft.svn.core.javahl.SVNClientImpl.copy(SVNClientImpl.java:724)
[svn] at org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.copy(AbstractJhlClientAdapter.java:821)
[svn] ... 21 more
[svn] Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: authentication cancelled
[svn] at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37)
[svn] at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32)
[svn] at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:211)
[svn] at org.tmatesoft.svn.core.internal.io.svn.SVNSSHConnector.open(SVNSSHConnector.java:105)
[svn] at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.open(SVNConnection.java:74)
[svn] at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:1242)
[svn] at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.testConnection(SVNRepositoryImpl.java:95)
[svn] at org.tmatesoft.svn.core.io.SVNRepository.getRepositoryRoot(SVNRepository.java:319)
[svn] at org.tmatesoft.svn.core.internal.wc.SVNCopyDriver.copyReposToRepos(SVNCopyDriver.java:196)
[svn] at org.tmatesoft.svn.core.internal.wc.SVNCopyDriver.setupCopy(SVNCopyDriver.java:629)
[svn] at org.tmatesoft.svn.core.wc.SVNCopyClient.doCopy(SVNCopyClient.java:426)
[svn] at org.tmatesoft.svn.core.javahl.SVNClientImpl.copyOrMove(SVNClientImpl.java:795)
[svn] ... 23 more |
Jusque là je comprends bien l'erreur mais j'avoue que je ne vois pas comment résoudre mon problème d'authentification. Voici quelques informations concernant le serveur et le script.
Serveur SVN :
- OVH mutualisé pro
- accès via tunnel ssh
- pas d'authentification particulière dans la config SVN. L'utilisateur "jabberwock" à les droits d'écritures sur le dépôt.
Le script :
Vous pouvez le télécharger en bas de cet article. Il faut rajouter la librairie trilead-ssh2-build213-svnkit-1.3-patch.jar dans le projet.
Je suis preneur de toutes idées, solutions, retour d'expériences sur un problème similaire.
Merci d'avance.