Я хочу иметь собственный репозиторий maven для созданных мной артефактов, но у меня есть проблема с попыткой развернуть артефакт maven 3 на пользовательский сервер. Чтобы объяснить это лучше я собираюсь дать некоторую информацию:Как развернуть maven3 артефакт на удаленном сервере с помощью scp
- Я использую Maven 3
- Я использую Eclipse, Keppler
- Я использую Дженкинс
- Удаленный сервер работает Ubuntu Server 11.04
- Дженкинс работает на сервере Ubuntu
- Моя локальная машина работает под управлением Windows XP
Моя первая попытка была с моей машиной. Я запускаю Maven в Eclipse для развертывания, и все работает нормально. Добавить следующее моих проектов POM
<build>
...
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh-external</artifactId>
<version>1.0-beta-6</version>
</extension>
</extensions>
...
</build>
...
<distributionManagement>
<repository>
<id>my server id</id>
<name>my repository name</name>
<url>scpexe://my server//path/to/my/repository</url>
</repository>
</distributionManagement>
И в моем settings.xml добавить
<servers>
<server>
<id>my server id</id>
<username>server username</username>
<password>server password</password>
<configuration>
<sshExecutable>plink</sshExecutable>
<scpExecutable>pscp</scpExecutable>
</configuration>
</server>
</servers>
Так что в моей локальной машине это работает, но мне нужно, чтобы получить эту работу, используя Дженкинс. Я изменил Jenkins settings.xml, потому что он работает на Linux, поэтому не требуется sshExecutable. Settings.xml Дженкинс выглядит
<servers>
<server>
<id>my server id</id>
<username>server username</username>
<password>server password</password>
</server>
</servers>
Тогда я изменил pom.xml выполнить только УПП и не scpexe
<distributionManagement>
<repository>
<id>my server id</id>
<name>my repository name</name>
<url>scp://my server//path/to/my/repository</url>
</repository>
</distributionManagement>
Но согласно этой странице https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes Maven 3 не поддерживает УПП. Я бегу это каким-либо образом, и я получил следующее сообщение об ошибке из Дженкинс войти
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project myproject: Failed to deploy artifacts/metadata: No connector available to access repository my_repository (scp://my server//path/to/my/repository) of type default using the available factories WagonRepositoryConnectorFactory
cause : Failed to deploy artifacts/metadata: No connector available to access repository my_repository (scp://my server//path/to/my/repository) of type default using the available factories WagonRepositoryConnectorFactory
Stack trace :
Если я использую scpexe вместо УПП я получил еще одно сообщение об ошибке
mavenExecutionResult exceptions not empty
message : Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project pruebanueva: Failed to deploy artifacts: Could not transfer artifact {$groupId}:{$artifactId}:{$package}:{$version} from/to my_repository (scpexe://my server//path/to/my/repository): Error executing command for transfer
cause : Failed to deploy artifacts: Could not transfer artifact {$groupId}:{$artifactId}:{$package}:{$version} from/to my_repository (scpexe://my server//path/to/my/repository): Error executing command for transfer
Stack trace :
Единственный способ, которым я мог развернуть, было делать это в два этапа
- Настройка Дженкинс, чтобы просто установить гол
- , выполнив следующую команду из командной строки
МВН развертывания: развертывание-файл -DgroupId = $ идентификатор_группы -DartifactId = $ артефакта -Dversion = $ версия -Dpackaging = баночка -Dfile = путь/к/file.jar -Durl = УПП:// мой сервер // путь/к/мой/хранилище -DrepositoryId = мое хранилище идентификатор
Я пробовал много вещей, в том числе письма, которые командуют в Дженкинс цели, но каждый раз, когда я использую команду УПП в Дженкинс сборки терпит неудачу.
Любая идея, как решить эту проблему, будет оценена по достоинству.
Мне очень жаль, но это не работает для меня. Где я должен поставить этот большой «профиль»? в моем pom.xml? если да, то где в моем pom.xml? внутри тегов сборки или в другом месте ?. Благодаря!!! – Angelo
Первый (большой) фрагмент входит в ваш файл POM. Это «профиль», который находится в структуре XML-файла POM следующим образом: 'project.profiles.profile'. Второй фрагмент находится в вашем 'settings.xml'. Вы можете найти этот файл в папке 'conf' вашей установки Maven. Есть примеры внутри стандартного 'settings.xml', чтобы показать вам, куда его поместить. –
Когда я запустил его, я получил следующую ошибку: «Ошибка развертывания: элемент репозитория не был указан в POM внутри элемента распределения управления или в -DaltDeploymentRepository = id :: layout :: url parameter» – Angelo