Я искал целый день для решения, но пока ничего не работает.Maven - используйте удаленный репозиторий также как локальный репозиторий
Задача: У меня есть два проекта Foo и Commons с использованием Maven. Foo зависит от Commons. Commons развертывается через scp в удаленный репозиторий на сервере. Тот же сервер также проверяет Foo и строит его. Но когда сервер пытается построить Foo он пытается получить доступ к Commons Jar удаленно (через УПП) и выдается ошибка:
Не удалось передать метаданные GroupID: обыкновенные: 0.0.1-SNAPSHOT/Maven-метаданные. xml from/to my-repository (scp: //server/.m2/repository): Не удается подключиться. Причина: SSH_MSG_DISCONNECT: 2 Слишком много сбоев аутентификации для пользователя
Edit: Развертывание фонда на сервер работ. Локальная упаковка Foo также работает. Я использую Maven 3.0.5 на сервере.
То, что я пытался до сих пор:
- Декларирование локальный репозиторий в
Foo
«spom.xml
- объявляя
org.apache.maven.wagon:wagon-file:2.6
как расширение вFoo
'spom.xml
- Изменение версии Commons' из
0.0.1-SNAPSHOT
до0.0.1-RELEASE
Фон: Проект Commons используется другими проектами, и несколько человек работают над этими проектами. Этим людям не нужно проверять проектные сообщества, но они всегда должны иметь доступ к самому современному Commons Jar.
settings.xml в ~/.m2 /:
...
<servers>
<server>
<id>my-repository</id>
<username>user</username>
<password>password</password>
</server>
</servers>
...
Common в pom.xml:
<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>
pom.xml Foo в:
<?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>
вы можете добавить вы pom.xml для ваших проектов, пожалуйста? –
... и ваши 'settings.xml' ...? У вас есть правильный ' ' раздел в вашем 'settings.xml'? –
carlspring
@ carlspring Да, я указал сервер в settings.xml.Развертывание Common Jar на сервере работает, но упаковка Foo Jar на сервере не работает. Проблема в том, что сервер пытается подключиться к себе удаленно, чтобы получить доступ к Commons Jar. –