Коннектор для развертывания maven? - программирование
Подтвердить что ты не робот

Коннектор для развертывания maven?

Я создал рабочий архетип maven для проекта Vaadin/Hibernate/ Spring. Я могу установить этот архетип в свой локальный репозиторий и использовать его для создания новых проектов maven.

Теперь я хочу развернуть архетип для внутреннего репозитория своих компаний, чтобы его могли использовать другие разработчики. Однако, когда я запускаю mvn deploy, я получаю следующее сообщение об ошибке:

[ERROR] Failed to execute goal org.apache.maven.plugins:
maven-deploy-plugin:2.7:deploy (default-deploy) on project 
vaadin-hibernate-archetype: Failed to deploy artifacts/metadata: 
No connector available to access repository maven.planet-ic.de 
(maven.planet-ic.de/planet-ic-releases) of type default using the 
available factories WagonRepositoryConnectorFactory -> [Help 1]

Что такое connector, который мне не хватает?

EDIT: я не прошу кого-то решить мою проблему, просто проницательность относительно того, что такое 'connector'.

Вот мой pom.xml, если это должно быть интересно:

<?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>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <groupId>de.planetic.maven.archetype.vaadin</groupId>
    <artifactId>vaadin-hibernate-archetype</artifactId>
    <version>1.1.0</version>
    <packaging>jar</packaging>
    <inceptionYear>2013</inceptionYear>
    <description>
        This archetype generates a Vaadin application for use with Hibernate, and to be deployed to a Tomcat 7 server.  It may also work with other Tomcat versions and other servers.
    </description>
    <developers>
        <developer>
            <name>Maximilian Friedersdorff</name>
            <email>[email protected]</email>
        </developer>
    </developers>
    <scm>
        <connection>scm:svn:http://subversion.planet-ic.de/internal/maven/archetype/pinnwand-webapp/tags/pinnwand-webapp-archetype-1.1.0</connection>
        <developerConnection>scm:svn:http://subversion.planet-ic.de/internal/maven/archetype/pinnwand-webapp/tags/pinnwand-webapp-archetype-1.1.0</developerConnection>
        <url>http://subversion.planet-ic.de/internal/maven/archetype/pinnwand-webapp/tags/pinnwand-webapp-archetype-1.1.0</url>
    </scm>
    <distributionManagement>
        <repository>
            <id>maven.planet-ic.de</id>
            <name>planet-ic-releases</name>
            <url>maven.planet-ic.de/planet-ic-releases</url>
        </repository>
        <snapshotRepository>
            <id>maven.planet-ic.de</id>
            <name>planet-ic-snapshots</name>
            <url>http://maven.planet-ic.de/planet-ic-snapshots</url>
        </snapshotRepository>
    </distributionManagement>

    <build>
        <pluginManagement>
            <plugins>  
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.7</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ssh</artifactId>
                <version>2.4</version>
            </extension>
        </extensions>
    </build>
</project>
4b9b3361

Ответ 1

В зависимости от репозитория maven, который вы пытаетесь развернуть, доступны различные методы для загрузки ваших артефактов.

Эти методы реализованы с использованием соединителей Maven Wagon для разных транспортных протоколов (например, ssh, dav и т.д.), это тот термин, который вы ищете.

Руководство Apache Maven по использованию расширений дает вам представление о том, как добавить коннекторы в вашу настройку.

Ответ 2

В следующей строке:

<url>maven.planet-ic.de/planet-ic-releases</url>

Вам нужно добавить префикс "file://", потому что вам нужно сообщить maven, что вы используете соединитель файла, а не ftp, http или что-то еще. И вам лучше использовать относительный путь. Например:

<url>file://${project.basedir}/maven.planet-ic.de/planet-ic-releases/</url>

Ответ 3

 <build>
 <extensions>
    <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh</artifactId>
        <version>2.4</version>
    </extension>
 </extensions>
 </build>

 <distributionManagement>
 <repository>
  <id>remoteserver</id>
  <name>MyCompany Repository</name>
  <url>scp://server/path/repo</url>
</repository>