Maven 2 Maven FTP分发问题

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>

maven release:perform无法通过FTP分发

我检查的第一件事是,我可以从命令行使用给定的凭据访问目标服务器。我可以使用被动FTP,但不能使用主动FTP(已知的防火墙限制)。我从谷歌上看到,Maven默认使用被动FTP。对吗?如果没有,如何使其使用被动FTP

假设Maven使用的是被动FTP,我将非常感谢其他建议

我的配置:

settings.xml

    <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

我不明白为什么一个人要这么做,但是试着去做