我已经搜索了一整天的解决方案,但到目前为止没有任何作用。
问题: 我有两个项目Foo和Commons使用Maven。 Foo依赖于Commons。 Commons通过scp部署到服务器上的远程存储库。同一台服务器也会检查Foo并构建它。但是当服务器尝试构建Foo时,它会尝试远程访问Commons Jar(通过scp)并抛出错误:
无法传输元数据groupId:commons:0.0.1-SNAPSHOT / maven-metadata.xml from / to my-repository(scp://server/.m2/repository):无法连接。原因:SSH_MSG_DISCONNECT:2用户
的身份验证失败太多
编辑:将Commons部署到服务器上。当地包装Foo也有效。我在服务器上使用Maven 3.0.5。
到目前为止我尝试了什么:
Foo
的{{1}} pom.xml
org.apache.maven.wagon:wagon-file:2.6
Foo
pom.xml
为附加信息
0.0.1-SNAPSHOT
更改为0.0.1-RELEASE
背景 Project Commons被其他项目使用,有几个人在这些项目上工作。这些人不应该查看Project Commons,但应该始终可以访问最新的Commons Jar。
〜/ .m2 /: 中的 settings.xml
Common的pom.xml: Foo的pom.xml: ...
<servers>
<server>
<id>my-repository</id>
<username>user</username>
<password>password</password>
</server>
</servers>
...
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>commons</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>commons</name>
<distributionManagement>
<repository>
<id>my-repository</id>
<url>scp://server/.m2/repository</url>
</repository>
</distributionManagement>
<build>
...
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>2.6</version>
</extension>
</extensions>
</build>
<dependencies>
...
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>foo</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<repositories>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>my-repository</id>
<url>scp://server/.m2/repository</url>
</repository>
</repositories>
...
</project>
答案 0 :(得分:1)
为了使其工作,我必须在服务器.m2/settings.xml
中为服务器存储库添加镜像。 <mirrorOf>
必须与<id>
中定义的存储库pom.xml
相同。
服务器:〜/ .m2目录/ settings.xml中:强>
...
<mirrors>
...
<mirror>
<id>local-mirror</id>
<mirrorOf>my-repository</mirrorOf>
<url>file://${user.home}/.m2/repository</url>
</mirror>
</mirrors>
...
来源:http://maven.apache.org/guides/mini/guide-mirror-settings.html