11

maven で作成した ear を scp を使用してアプリケーション サーバーにアップロードしようとしています。

走ろうとした時

mvn wagon:upload-single

しかし、次のエラーが表示されます。

[エラー] プロジェクト de.volkswagen.dps.ear で目標 org.codehaus.mojo:wagon-maven-plugin:1.0-beta-3:upload-single (default-cli) を実行できませんでした: Unable to create a Wagon instance for null: URL を null にすることはできません -> [ヘルプ 1]
org.apache.maven.lifecycle.LifecycleExecutionException: プロジェクト de.volkswagen.dps.ear で目標 org.codehaus.mojo:wagon-maven-plugin:1.0-beta-3:upload-single (default-cli) を実行できませんでした: null の Wagon インスタンスを作成できません
    org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute (DefaultLifecycleExecutor.java:585) で
    org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute (DefaultLifecycleExecutor.java:324) で
    org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:247) で
    org.apache.maven.DefaultMaven.execute (DefaultMaven.java:104) で
    org.apache.maven.cli.MavenCli.execute (MavenCli.java:427) で
    org.apache.maven.cli.MavenCli.doMain (MavenCli.java:157) で
    org.apache.maven.cli.MavenCli.main (MavenCli.java:121) で
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で
    java.lang.reflect.Method.invoke(Method.java:597) で
    org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) で
    org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230) で
    org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) で
    org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352) で
原因: org.apache.maven.plugin.MojoExecutionException: null の Wagon インスタンスを作成できません
    org.codehaus.mojo.wagon.AbstractWagonMojo.createWagon (AbstractWagonMojo.java:83) で
    org.codehaus.mojo.wagon.AbstractSingleWagonMojo.execute (AbstractSingleWagonMojo.java:62) で
    org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:105) で
    org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute (DefaultLifecycleExecutor.java:577) で
    ... 14以上
原因: java.lang.NullPointerException: URL を null にすることはできません
    org.apache.maven.wagon.repository.Repository.(Repository.java:88) で
    org.codehaus.mojo.wagon.shared.WagonUtils.createWagon (WagonUtils.java:51) で
    org.codehaus.mojo.wagon.AbstractWagonMojo.createWagon (AbstractWagonMojo.java:79) で
    ... 17以上

これをpomに追加しようとしましたが、効果がないようです:

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>
....

誰かが私がこれを機能させる方法を説明できますか?

4

2 に答える 2

14

現在の構成は、使用法ページに示されている例に従っており、正しいものです。ただし、この例では、configuration要素は 内で宣言されているため、この特定のexecutionにのみ適用されます。execution

mvn wagon:upload-singleそのため、コマンドラインで呼び出すと、 configuration「使用」されず、実際にはurlパラメーターが構成されていません。

コマンド ラインからプラグインを呼び出す場合は、コマンド ラインでパラメーターを渡すか、などを使用-Durl=fooするか、「グローバル」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>
于 2010-07-21T20:27:53.693 に答える