2010-07-21 7 views
10

Ich versuche, ein von Maven erstelltes Ohr mit scp auf einen Anwendungsserver hochzuladen.Das Hochladen einer Datei über SCP mit Maven schlägt fehl

Als ich versuchte,

mvn wagon:upload-single 

zu laufen, aber ich bekomme die folgende Fehlermeldung:

 
[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 

Ich habe versucht, dies den pom hinzuzufügen, aber es scheint keine Wirkung zu haben:

ich habe folgendes auf die 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> 
.... 

Kann mir jemand erklären, wie ich das schaffen kann?

Antwort

15

Ihre aktuelle Konfiguration folgt dem Beispiel in der Usage Seite und ist korrekt. In diesem Beispiel ist das configuration Element jedoch innerhalb eines execution deklariert und gilt somit nur für dieses insbesondere execution.

Also, wenn Sie mvn wagon:upload-single auf der Kommandozeile aufrufen, ist die configuration nicht "verwendet" und es ist in der Tat keine url Parameter konfiguriert.

Wenn Sie das Plugin von der Kommandozeile aufrufen, entweder die Parameter in der Befehlszeile übergeben -Durl=foo mit und so weiter oder ein „globales“ configuration Element hinzufügen:

<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

Das Element in der Konfiguration wird im Wagen nicht berücksichtigt: Upload-single. Sie können das targetDir im selbst angeben. – tahagh

Verwandte Themen