Разъем для развертывания 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
что мне не хватает?
РЕДАКТИРОВАТЬ: я не прошу кого-то, чтобы решить мою проблему, просто некоторое понимание того, что '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>max.friedersdorff@planet-ic.de</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>
5 ответов
В зависимости от репозитория maven, к которому вы пытаетесь развернуть, существуют различные способы загрузки ваших артефактов.
Эти методы реализованы с использованием коннекторов Maven Wagon для различных транспортных протоколов (например, ssh, dav и т. Д.), Это термин, который вы ищете.
Руководство по использованию расширений Apache Maven дает представление о том, как добавить коннекторы в вашу настройку.
В следующей строке:
<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>
Если это помогает другим, добавление следующего в pom.xml заставило меня работать
<build>
<extensions>
<extension>
<groupId>org.springframework.build</groupId>
<artifactId>aws-maven</artifactId>
<version>5.0.0.RELEASE</version>
</extension>
</extensions>
</build>
<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>
Была такая же проблема с развертыванием в частном репо через sftp вместо scp.
Решил эту проблему, установив следующее.
Ява 11
pom.xml
<distributionManagement>
<repository>
<id>setting_id</id>
<url>sftp://maven...../maven</url>
</repository>
<snapshotRepository>
<id>setting_id_snapshot</id>
<url>sftp://maven...../maven</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<!-- ...other plugins...-->
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>3.5.2</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>default-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
настройки.xml
<server>
<id>server_id</id>
<username>repo_user</username>
<privateKey>/var/lib/jenk_user/.ssh/id_rsa</privateKey>
<directoryPermissions>744</directoryPermissions>
<filePermissions>664</filePermissions>
</server>
Пробовал использовать<artifactId>wagon-ssh-external</artifactId>
безуспешно.
Надеюсь, кто-нибудь найдет это полезным.