2010-07-21 7 views
10

Si tenta di caricare un orecchio creato da Maven su un server applicazioni utilizzando scp.Caricamento di un file tramite SCP con errore Maven

Quando ho provato a correre

mvn wagon:upload-single 

Ma ottengo il seguente errore:

 
[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 

ho cercato di aggiungere questo alla pom, ma non sembra avere alcun effetto:

ho aggiunto quanto segue alla 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> 
.... 

Qualcuno può spiegare come posso farlo funzionare?

risposta

15

La configurazione corrente segue l'esempio riportato nella pagina Usage ed è corretta. Tuttavia, in questo esempio l'elemento configuration è dichiarato all'interno di execution e pertanto si applica solo a questo particolare execution.

Quindi quando si chiama mvn wagon:upload-single sulla riga di comando, il configuration non viene "utilizzato" e non esiste effettivamente alcun parametro url configurato.

Se si desidera chiamare il plugin da linea di comando, o passare i parametri sulla riga di comando utilizzando -Durl=foo e così via o aggiungere una "globale" 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

L'elemento nella configurazione non è considerato in wagon: upload-single. È possibile specificare il targetDir nello stesso . – tahagh

Problemi correlati