【发布时间】:2014-02-14 07:56:03
【问题描述】:
我们在自己的 git(不是 Github)存储库内部托管了一个 maven 存储库。 git clone 工作正常:
git clone ssh://git@coyote.acme.com/home/git/acme-mvn-repo.git
所以我们知道 ssh 密钥设置正确。
我们有一个项目,它依赖于托管在 maven 以上存储库中的工件。为此的 pom.xml 包括:
<repository>
<id>acme-repo</id>
<url>ssh://git@coyote.acme.com/home/git/acme-mvn-repo.git</url>
</repository>
...
<!-- This dependency is in coyote.acme.com/home/git/acme-mvn-repo.git -->
<dependency>
<groupId>coyote.acme.com</groupId>
<artifactId>anvil</artifactId>
<version>1.0.0</version>
</dependency>
...
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.6</version>
</extension>
</extensions>
执行时:
mvn clean install -U
我们得到:
Failed to read artifact descriptor for coyote.acme.com:anvil:jar:1.0.0:
Could not transfer artifact coyote.acme.com:anvil:pom:1.0.0 from/to acme-repo
(coyote.acme.com:anvil): No connector available to access rep
ository repo (coyote.acme.com:anvil) of type default using the available factories
WagonRepositoryConnectorFactory -> [Help 1]
我们应该使用不同的连接器吗?
【问题讨论】:
-
这是windows 还是linux,如果是Windows,您需要应用额外的设置来告诉Maven 在哪里获取
SSH公钥-maven.apache.org/plugins/maven-deploy-plugin/examples/… -
面向开发人员的 Windows,但也可以通过 Jenkins 在 linux 上构建。
-
另外在
wagon网站上 - maven.apache.org/wagon/wagon-providers/wagon-ssh 。从SSH下载未经测试。虽然,这并不能回答您的问题 - 所以很抱歉 - 通常我与几个团队所做的是托管一个 Nexus 存储库 - sonatype.org/nexus 并通过 Maven 轻松上传和下载工件。还没有遇到过用于分发依赖项的 SSH 服务器。 -
感谢指向 sonatype 的指针。我看了看,它看起来很整洁,但现在我已经通过在 tomcat 上托管 repo 来让它工作。