Maven 2 Maven FTP分发问题
maven release:perform无法通过FTP分发 我检查的第一件事是,我可以从命令行使用给定的凭据访问目标服务器。我可以使用被动FTP,但不能使用主动FTP(已知的防火墙限制)。我从谷歌上看到,Maven默认使用被动FTP。对吗?如果没有,如何使其使用被动FTP 假设Maven使用的是被动FTP,我将非常感谢其他建议 我的配置: settings.xml:Maven 2 Maven FTP分发问题,maven-2,ftp,Maven 2,Ftp,maven release:perform无法通过FTP分发 我检查的第一件事是,我可以从命令行使用给定的凭据访问目标服务器。我可以使用被动FTP,但不能使用主动FTP(已知的防火墙限制)。我从谷歌上看到,Maven默认使用被动FTP。对吗?如果没有,如何使其使用被动FTP 假设Maven使用的是被动FTP,我将非常感谢其他建议 我的配置: settings.xml: <servers> <server> <id>
<servers>
<server>
<id>repo-ftp</id>
<username>myUserName</username>
<password>myPassword</password>
</server>
</servers>
<distributionManagement>
<repository>
<id>repo-ftp</id>
<url>ftp://myServer</url>
</repository>
<snapshotRepository>
<id>repo-ftp</id>
<url>ftp://myServer</url>
</snapshotRepository>
</distributionManagement>
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [ERROR] FATAL ERROR
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] org.apache.maven.wagon.AbstractWagon.openConnection()V
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Trace
[INFO] java.lang.AbstractMethodError: org.apache.maven.wagon.AbstractWagon.openConnection()V
[INFO] at org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:143)
[INFO] at org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:235)
[INFO] at org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:153)
[INFO] at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:80)
[INFO] at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:162)
[INFO] at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
[INFO] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
[INFO] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
[INFO] at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[INFO] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke(Method.java:616)
[INFO] at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
[INFO] at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
[INFO] at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
[INFO] at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 16 seconds
[INFO] [INFO] Finished at: Wed Oct 21 17:43:11 UTC 2009
[INFO] [INFO] Final Memory: 25M/47M
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Maven execution failed, exit code: '1'
commons-cli.jar -> ../../java/commons-cli.jar
commons-net.jar -> ../../java/commons-net.jar
doxia-sink-api.jar -> ../../java/doxia-sink-api.jar
jsch.jar -> ../../java/jsch.jar
jtidy.jar -> ../../java/jtidy.jar
maven2.jar -> ../../java/maven2.jar
plexus-container-default.jar -> ../../java/plexus-container-default.jar
plexus-interactivity-api.jar -> ../../java/plexus-interactivity-api.jar
plexus-utils.jar -> ../../java/plexus-utils.jar
wagon-file.jar -> ../../java/wagon-file.jar
wagon-ftp-1.0-beta-2.jar -> ../../java/wagon-ftp.jar
wagon-ftp.jar -> ../../java/wagon-ftp.jar
wagon-http-lightweight.jar -> ../../java/wagon-http-lightweight.jar
wagon-http-shared.jar -> ../../java/wagon-http-shared.jar
wagon-provider-api.jar -> ../../java/wagon-provider-api.jar
wagon-ssh-common.jar -> ../../java/wagon-ssh-common.jar
wagon-ssh-external.jar -> ../../java/wagon-ssh-external.jar
wagon-ssh.jar -> ../../java/wagon-ssh.jar
xml-apis.jar -> ../../java/xml-apis.jar
更新
我在父POM中确实有一个扩展节点:
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>1.0-beta-5</version>
</extension>
(这是从我收到的错误消息中剪切粘贴而来的,并将.jar的本地副本放在适当的位置)
现在,我得到:
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [ERROR] BUILD ERROR
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Error deploying artifact: Unsupported Protocol: 'ftp': Cannot find wagon which supports the requested protocol: ftp
[INFO]
[INFO] Component descriptor cannot be found in the component repository: org.apache.maven.wagon.Wagonftp.
对那个问题有什么建议吗
更新2
我在$M2_HOME/lib中没有wag-ftp.jar或commons-net.jar,但现在有了。我也犯了同样的错误
$M2\u HOME/lib:
<servers>
<server>
<id>repo-ftp</id>
<username>myUserName</username>
<password>myPassword</password>
</server>
</servers>
<distributionManagement>
<repository>
<id>repo-ftp</id>
<url>ftp://myServer</url>
</repository>
<snapshotRepository>
<id>repo-ftp</id>
<url>ftp://myServer</url>
</snapshotRepository>
</distributionManagement>
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [ERROR] FATAL ERROR
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] org.apache.maven.wagon.AbstractWagon.openConnection()V
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Trace
[INFO] java.lang.AbstractMethodError: org.apache.maven.wagon.AbstractWagon.openConnection()V
[INFO] at org.apache.maven.wagon.AbstractWagon.connect(AbstractWagon.java:143)
[INFO] at org.apache.maven.artifact.manager.DefaultWagonManager.putRemoteFile(DefaultWagonManager.java:235)
[INFO] at org.apache.maven.artifact.manager.DefaultWagonManager.putArtifact(DefaultWagonManager.java:153)
[INFO] at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:80)
[INFO] at org.apache.maven.plugin.deploy.DeployMojo.execute(DeployMojo.java:162)
[INFO] at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
[INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
[INFO] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
[INFO] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
[INFO] at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[INFO] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke(Method.java:616)
[INFO] at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
[INFO] at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
[INFO] at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
[INFO] at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 16 seconds
[INFO] [INFO] Finished at: Wed Oct 21 17:43:11 UTC 2009
[INFO] [INFO] Final Memory: 25M/47M
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Maven execution failed, exit code: '1'
commons-cli.jar -> ../../java/commons-cli.jar
commons-net.jar -> ../../java/commons-net.jar
doxia-sink-api.jar -> ../../java/doxia-sink-api.jar
jsch.jar -> ../../java/jsch.jar
jtidy.jar -> ../../java/jtidy.jar
maven2.jar -> ../../java/maven2.jar
plexus-container-default.jar -> ../../java/plexus-container-default.jar
plexus-interactivity-api.jar -> ../../java/plexus-interactivity-api.jar
plexus-utils.jar -> ../../java/plexus-utils.jar
wagon-file.jar -> ../../java/wagon-file.jar
wagon-ftp-1.0-beta-2.jar -> ../../java/wagon-ftp.jar
wagon-ftp.jar -> ../../java/wagon-ftp.jar
wagon-http-lightweight.jar -> ../../java/wagon-http-lightweight.jar
wagon-http-shared.jar -> ../../java/wagon-http-shared.jar
wagon-provider-api.jar -> ../../java/wagon-provider-api.jar
wagon-ssh-common.jar -> ../../java/wagon-ssh-common.jar
wagon-ssh-external.jar -> ../../java/wagon-ssh-external.jar
wagon-ssh.jar -> ../../java/wagon-ssh.jar
xml-apis.jar -> ../../java/xml-apis.jar
请注意,所有其他依赖项都是使用指向另一个目录的符号链接部署的,因此我继续使用相同的模式。所有文件的访问权限都相同。我尝试提供一个wago-ftp.jar和wago-ftp-1.0-beta-2.jar符号链接
我对升级到最新版本的maven不太感兴趣(因为担心出现新问题),但这是我最好的选择吗?还有其他想法吗
解决方案
成功了!有点现在我得到了一个身份验证错误,但这是另一个问题
一瞬间,我提到了-sources,我意识到我下载了wag-ftp-1.0-beta-2-sources.jar,但安装了-Dversion=1.0-beta-2(无-sources)。。。因此,我将源JAR复制到二进制JAR文件名:-)
谢谢大家的帮助 您是否将货车ftp定义为
org.apache.maven.wagen
这是一篇关于这个问题的文章
在maven用户列表中,我发现您需要使用ftp的1.0-beta-2版本和2.0.9版本。1.0-beta-3将与2.0.10配合使用,而Wagon 1.0-beta-5版本将仅作为Maven 2.1.0-M1及以上版本的扩展使用。您是否将Wagon ftp定义为ftp
org.apache.maven.wagen
这是一篇关于这个问题的文章
在maven用户列表中,我发现您需要使用ftp的1.0-beta-2版本和2.0.9版本。1.0-beta-3将与2.0.10配合使用,而Wagen 1.0-beta-5版本仅作为Maven 2.1.0-M1及以上版本的扩展使用。设置看起来不错。是的,默认为被动模式(请参阅)。这就是说,根据跟踪(java.lang.AbstractMethodError
在某些东西试图调用抽象方法时抛出),很明显,您的马车与您的maven版本不兼容。疯狂的马车
这肯定不是最好的地方,但事实上这已记录在中(请特别注意底部的“注释”):
扩展用于启用货车
提供者,用于传输
存储库之间的工件,以及
提供生命周期的插件
增强功能。货车供应商
<project>
...
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>1.0-beta-2</version>
</extension>
</extensions>
</build>
...
</project>
...
org.apache.maven.wagen
描述了非常相似的内容:
如果您正在使用deploy:deploy文件目标并遇到以下错误:
部署项目时出错:不支持的协议:“ftp”:找不到支持请求的协议:ftp的文件
然后,您需要在%M2\u HOME%/lib
中放置适当的货车提供商。在本例中,所需的提供者是ftp,因此我们必须将WANGFTP jar放在Maven 2安装的lib目录中
如果错误描述如下所示:
部署项目时出错:不支持的协议:“ftp”:找不到支持请求的协议:ftp org/apache/commons/net/ftp/ftp
然后您需要将commons net jar放入%M2\u HOME%/lib
我不明白为什么要这样做,但试着把%M2\u HOME%/lib
放进去
EDIT2:我已经再次阅读了这个问题,看起来您确实安装了一个“sources”jar,它当然不包含运行时所需的类。在遵循上述建议之前,请尝试放入存储库(而不是)。设置看起来不错。是的,默认为被动模式(请参阅)。这就是说,根据跟踪(java.lang.AbstractMethodError
在某些东西试图调用抽象方法时抛出),很明显,您的马车与您的maven版本不兼容。疯狂的马车
这肯定不是最好的地方,但事实上这已记录在中(请特别注意底部的“注释”):
扩展用于启用货车
提供者,用于传输
存储库之间的工件,以及
提供生命周期的插件
增强功能。货车供应商
<project>
...
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>1.0-beta-2</version>
</extension>
</extensions>
</build>
...
</project>
...
org.apache.maven.wagen
描述了非常相似的内容:
如果您正在使用deploy:deploy文件目标并遇到以下错误:
部署项目时出错:不支持的协议:“ftp”:找不到支持请求的协议:ftp的文件
然后,您需要在%M2\u HOME%/lib
中放置适当的货车提供商。在本例中,所需的提供者是ftp,因此我们必须将WANGFTP jar放在Maven 2安装的lib目录中
如果错误描述如下所示:
部署项目时出错:不支持的协议:“ftp”:找不到支持请求的协议:ftp org/apache/commons/net/ftp/ftp
然后您需要将commons net jar放入%M2\u HOME%/lib
我不明白为什么一个人要这么做,但是试着去做