wagon ssh / scp:没有可用于访问存储库的连接器...使用可用工厂 WagonRepositoryConnectorFactory 默认类型

wagon ssh / scp: No connector available to access repository ... of type default using the available factories WagonRepositoryConnectorFactory

这是 wagon-ssh 2.10 的错误吗?

什么可能有效?

例如Maven、Wagon-SSH 和 pom 设置的何种组合将恢复 Maven 3.0.5 和 wagon-ssh 2.4 的行为?

在我的 pom.xml 中升级到 wagon-ssh 2.10 后,根据 https://issues.apache.org/jira/browse/MDEPLOY-177 检查这是否会解决我的问题 另见 How to fix or workaround wagon bug?

我收到以下错误消息:

No connector available to access repository XXX-snapshot-repository 
(scp://XXX/srv/repo/snapshots/) of type default 
using the available factories WagonRepositoryConnectorFactory

调查No connector available using eclipse aether package to deploy through maven plugin

我以为这可能是 Maven 版本问题。确实我一直坚持 自从 wagon-ssh had been broken 用于 scp 传输许多个月以来

到较旧的 3.0.5 maven
mvn --version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 14:51:28+0100)

所以我升级到 Maven 3.3.3

mvn --version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00)

稍微修改了错误信息:

Cannot access scp://XXX/srv/repo/snapshots/ with type default using the available connector factories: BasicRepositoryConnectorFactory

调查中 Failed to deploy maven project, no connector available

似乎有不同类型的 ConnectorFactories

  1. WagonRepositoryConnectorFactory (Maven 3.0.5)
  2. BasicRepositoryConnectorFactory (Maven 3.3.3)
  3. AetherRepositoryConnectorFactory(Maven?)

调查 有一个指向 http://maven.apache.org/guides/mini/guide-using-extensions.html 的指针,它应该解释如何添加连接器(6 人赞成这个答案)——但我没有在那里找到 ConnectorFactory 的提及。

互联网搜索

wagon-ssh ConnectorFactory scp

有这个问题中已经提到的一些链接,并且:

Is there any way of having maven scp wagon work consistently on linux/mac/windows platform?

其中提到了我已经成功使用了大约 2 年的配置样式。

我观察到当我单独在父 pom.xml 上安装 maven 时发生了以下下载:

mvn install
[INFO] Scanning for projects...
Downloading: http://uk.maven.org/maven2/org/apache/maven/wagon/wagon-provider-api/2.10/wagon-provider-api-2.10.jar
Downloaded: http://uk.maven.org/maven2/org/apache/maven/wagon/wagon-provider-api/2.10/wagon-provider-api-2.10.jar (53 KB at 129.4 KB/sec)

但这不会改变子项目的情况。

这是 pom 的摘录:

   <extensions>
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>2.10</version>
        </extension>
    </extensions>


   <distributionManagement>
        <snapshotRepository>
            <id>XXX-snapshot-repository</id>
            <name>XXX Maven2 Snapshot Repository</name>
            <url>scp://XXX/srv/repo/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

我必须承认我觉得自己有点傻,但由于其他人可能有类似的问题,我将展示解决问题的方法:

<parent>
    <groupId>XXX</groupId>
    <artifactId>XXX</artifactId>
    <version>XXX-SNAPSHOT</version>
    <relativePath>../XXX/pom.xml</relativePath>
</parent>

所以上面显示的 pom 声明根本没有被拾取。

您有一个子菜单布局并且

<build>
  <extensions>
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-ssh</artifactId>
      <version>2.10</version>
  </extension>
</extensions>

上传时未找到!当您通过引用 <relativePath> 父级解决问题时,最终在父级 pom 中找到了 wagon-ssh

顺便说一句,如果你运行通过mvn release进入这个问题,这是唯一失败的步骤,你不需要再次发布,只需输入mvn deploy即可完成发布!​​

使用<url>scpexe://XXX/srv/repo/snapshots/</url>除非<url>scp://XXX/srv/repo/snapshots/</url>

查找deploy-ssh-external

我在 pom.xml 位置尝试了 'mvn install',所有的东西都自动配置了。现在我可以 运行 我的项目作为 maven 安装。