Maven对Git上的回购依赖

时间:2014-01-23 16:20:59

标签: git maven ssh

我们在我们自己的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]

我们应该使用不同的连接器吗?

1 个答案:

答案 0 :(得分:2)

Maven希望服务器为其提供单个文件。 git repo只是一组变化,需要Git工具来理解它们。所以你所做的事情没有意义,也永远不会奏效。

您可以做什么:您可以在HTTP服务器上克隆存储库。将其配置为可以从Web浏览器访问根文件夹。如果这样做,您可以在Maven中使用相同的URL。

我建议首先尝试在网络浏览器中使用它,因为它会为您提供更好的错误消息,您可以使用鼠标浏览Maven仓库。