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

时间:2015-11-15 07:52:44

标签: maven maven-wagon-plugin wagon

这是wagon-ssh 2.10的错误吗?

什么可行?

E.g。什么样的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版本的问题。的确,我一直在坚持 对于一个较旧的3.0.5 maven一段时间以来,wagon-ssh had been broken scp转移了好几个月

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?)
  4. 展望https://stackoverflow.com/a/18253897/1497139 有一个指向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>
    

4 个答案:

答案 0 :(得分:5)

您有子菜单布局和

<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即可完成发布!​​

答案 1 :(得分:3)

我必须承认我觉得有点愚蠢,但由于其他人可能有类似的问题,我正在展示解决问题的原因:

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

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

答案 2 :(得分:0)

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

查询deploy-ssh-external

答案 3 :(得分:0)

我在pom.xml位置尝试了“ mvn install”,所有东西都自动配置了。现在,我可以在maven install中运行我的项目了。