2010-07-21 4 views
10

J'essaye de télécharger une oreille créée par maven sur un serveur d'application utilisant scp.Téléchargement d'un fichier via SCP avec Maven échoue

Quand j'ai essayé de courir

mvn wagon:upload-single 

Mais je reçois l'erreur suivante:

 
[ERROR] Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0-beta-3:upload-single (default-cli) on project de.volkswagen.dps.ear: Unable to create a Wagon instance for null: url can not be null -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:wagon-maven-plugin:1.0-beta-3:upload-single (default-cli) on project de.volkswagen.dps.ear: Unable to create a Wagon instance for null 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:585) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:121) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to create a Wagon instance for null 
    at org.codehaus.mojo.wagon.AbstractWagonMojo.createWagon(AbstractWagonMojo.java:83) 
    at org.codehaus.mojo.wagon.AbstractSingleWagonMojo.execute(AbstractSingleWagonMojo.java:62) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:105) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:577) 
    ... 14 more 
Caused by: java.lang.NullPointerException: url can not be null 
    at org.apache.maven.wagon.repository.Repository.(Repository.java:88) 
    at org.codehaus.mojo.wagon.shared.WagonUtils.createWagon(WagonUtils.java:51) 
    at org.codehaus.mojo.wagon.AbstractWagonMojo.createWagon(AbstractWagonMojo.java:79) 
    ... 17 more 

J'ai essayé d'ajouter à la pom, mais il ne semble pas avoir d'effet:

j'ajouté ce qui suit à la pom.xml:

... 
    <extensions> 
     <extension> 
      <groupId>org.apache.maven.wagon</groupId> 
      <artifactId>wagon-ssh</artifactId> 
      <version>1.0-beta-6</version> 
     </extension> 
    </extensions> 

    <plugins> 

     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>wagon-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
       <execution> 
        <id>upload-ear</id> 
        <phase>deploy</phase> 
        <goals> 
         <goal>upload</goal> 
        </goals> 
        <configuration> 
         <fromFile>${project.build.directory}/${project.build.finalName}.ear</fromFile> 
         <url>scp://servername/</url> 
         <toDir>.</toDir> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
.... 

Quelqu'un peut-il expliquer comment je peux faire ce travail?

Répondre

15

Votre configuration actuelle suit l'exemple donné dans la page Usage et est correcte. Cependant, dans cet exemple, l'élément configuration est déclaré à l'intérieur d'un execution et ne s'applique donc qu'à ce particulier execution. Par conséquent, lorsque vous appelez mvn wagon:upload-single sur la ligne de commande, le configuration n'est pas "utilisé" et aucun paramètre url n'est configuré.

Si vous voulez appeler le plug-in de la ligne de commande, soit passer les paramètres sur la ligne de commande à l'aide -Durl=foo et ainsi de suite ou ajouter un élément « global » configuration:

<build> 
    <extensions> 
    <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-ssh</artifactId> 
     <version>1.0-beta-6</version> 
    </extension> 
    </extensions> 

    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>wagon-maven-plugin</artifactId> 
     <version>1.0-beta-3</version> 
     <configuration> 
     <fromFile>${project.build.directory}/${project.build.finalName}.ear</fromFile> 
     <url>scp://servername/</url> 
     <toDir>.</toDir> 
     </configuration> 
     ... 
    </plugin> 
    ... 
    </plugins> 
    ... 
</build> 
+0

L'élément dans la configuration n'est pas considéré dans wagon: upload-single. Vous pouvez spécifier le targetDir dans le lui-même. – tahagh

Questions connexes