我们在我们自己的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]
我们应该使用不同的连接器吗?
答案 0 :(得分:2)
Maven希望服务器为其提供单个文件。 git repo只是一组变化,需要Git工具来理解它们。所以你所做的事情没有意义,也永远不会奏效。
您可以做什么:您可以在HTTP服务器上克隆存储库。将其配置为可以从Web浏览器访问根文件夹。如果这样做,您可以在Maven中使用相同的URL。
我建议首先尝试在网络浏览器中使用它,因为它会为您提供更好的错误消息,您可以使用鼠标浏览Maven仓库。