2010-07-21 10 views
10

intento cargar una oreja creado por Maven para un servidor de aplicaciones utilizando SCP.Carga de un archivo a través de SCP con Maven falla

Cuando traté de correr

mvn wagon:upload-single 

Pero me sale el siguiente error:

 
[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 

He intentado añadir esto a la pom, pero no parecen tener ningún efecto:

I añadió lo siguiente a 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> 
.... 

¿Alguien puede explicar cómo puedo hacer este trabajo?

Respuesta

15

Su configuración actual sigue el ejemplo dado en la página Usage y es correcta. Sin embargo, en este ejemplo, el elemento configuration se declara dentro de un execution y, por lo tanto, solo se aplica a este en particular execution.

Por lo tanto, cuando llama al mvn wagon:upload-single en la línea de comandos, el configuration no se "usa" y no hay ningún parámetro url configurado.

Si desea llamar el plugin desde la línea de comandos, o bien pasar los parámetros en la línea de comandos usando -Durl=foo y así sucesivamente o añadir un "global" configuration elemento:

<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

El elemento en la configuración no se considera en el carro: cargar una sola. Se puede especificar el targetDir en el sí. – tahagh

Cuestiones relacionadas