Maven 2 使用Maven通过SCP上传文件失败
我尝试使用scp将maven创建的ear上传到应用服务器 当我试着跑的时候Maven 2 使用Maven通过SCP上传文件失败,maven-2,upload,scp,wagon,Maven 2,Upload,Scp,Wagon,我尝试使用scp将maven创建的ear上传到应用服务器 当我试着跑的时候 mvn wagon:upload-single 但我得到了以下错误: [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 f
mvn wagon:upload-single
但我得到了以下错误:
[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
[错误]无法在project de.volkswagen.dps.ear上执行goal org.codehaus.mojo:wagen maven plugin:1.0-beta-3:upload single(默认cli):无法为null创建wagen实例:url不能为null->[帮助1]
org.apache.maven.lifecycle.LifecycleExecutionException:未能在project de.volkswagen.dps.ear上执行目标org.codehaus.mojo:wagen maven插件:1.0-beta-3:上载单个(默认cli):无法为null创建wagen实例
位于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创建WAG实例
位于org.codehaus.mojo.wago.AbstractWagonMojo.CreateWago(AbstractWagonMojo.java:83)
位于org.codehaus.mojo.wag.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.wagg.repository.repository.(repository.java:88)
在org.codehaus.mojo.wagg.shared.WagonUtils.createwaggan(WagonUtils.java:51)
位于org.codehaus.mojo.wago.AbstractWagonMojo.CreateWago(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>
....
。。。
org.apache.maven.wagen
马车ssh
1.0-beta-6
org.codehaus.mojo
货车司机插件
1.0-beta-3
上传耳朵
部署
上传
${project.build.directory}/${project.build.finalName}.ear
scp://servername/
.
....
有人能解释一下我是如何做到这一点的吗?您当前的配置遵循页面中给出的示例,并且是正确的。但是,在此示例中,
配置
元素在执行
中声明,因此仅适用于此特定的执行
因此,当您在命令行上调用mvn-cargo:upload single
时,configuration
未被“使用”,并且确实没有配置url
参数
如果要从命令行调用插件,请使用-Durl=foo
等在命令行上传递参数,或者添加一个“全局”配置元素:
<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>
org.apache.maven.wagen
马车ssh
1.0-beta-6
org.codehaus.mojo
货车司机插件
1.0-beta-3
${project.build.directory}/${project.build.finalName}.ear
scp://servername/
.
...
...
...
您可以使用pom.xml
上的配置运行以下命令来运行插件:
mvn org.codehaus.mojo:wagon-maven-plugin:upload@upload-ear
配置中的元素不在WARGO:upload single中考虑。您可以在自身中指定targetDir。