2009-09-04 2 views
4

Я пытаюсь использовать Subversion в качестве репозитория Maven, используя Maven wagon. Если я объявляю расположение снимков с использованием HTTP в качестве протокола я получаю 409 ошибку обратно от сервера при попытке развернуть (MVN чистую Deploy)Невозможно развернуть с помощью SVN в качестве Maven repo

<snapshotRepository> 
     <uniqueVersion>false</uniqueVersion> 
     <id>engtools_snapshots</id> 
     <name>EngTools Maven Repository</name> 
     <url>http://continuum.td.com/svn_repos/maven/snapshots</url> 
</snapshotRepository> 

Когда я изменить протокол ВСМ: SVN: HTTP вещи становятся еще более странно - я получить несколько ошибок, казалось бы, связанных с сфере

<snapshotRepository> 
     <uniqueVersion>false</uniqueVersion> 
     <id>engtools_snapshots</id> 
     <name>EngTools Maven Repository</name> 
     <url>scm:svn:http://continuum.td.com/svn_repos/maven/snapshots</url> 
</snapshotRepository> 

конфигурации SCM

 <extensions> 
     <extension> 
      <groupId>org.apache.maven.wagon</groupId> 
      <artifactId>wagon-scm</artifactId> 
      <version>1.0-beta-6</version> 
     </extension> 
     <extension> 
      <groupId>org.apache.maven.scm</groupId> 
      <artifactId>maven-scm-manager-plexus</artifactId> 
      <version>1.3-SNAPSHOT</version> 
     </extension> 
     <extension> 
      <groupId>org.apache.maven.scm</groupId> 
      <artifactId>maven-scm-provider-svnexe</artifactId> 
      <version>1.3-SNAPSHOT</version> 
     </extension> 
    </extensions> 

Частичное StackTrace в результате (МВН Deploy)

[INFO] [deploy:deploy {execution: default-deploy}] 
[INFO] Retrieving previous build number from engtools_snapshots 
[FATAL ERROR] org.apache.maven.plugin.deploy.DeployMojo#execute() caused a 
linkage error (java.lang.AbstractMethodError) and may be out-of-date. Check 
the realms: 
[FATAL ERROR] Plugin realm = 
app0.child-container[org.apache.maven.plugins:maven-deploy-plugin:2.4] 
urls[0] = file:/C:/Documents and Settings/boo/.m2/repository/org/apache/ 
maven/plugins/maven-deploy-plugin/2.4/maven-deploy-plugin-2.4.jar 
urls[1] = file:/C:/Documents and Settings/boo/.m2/repository/org/codehaus/ 
plexus/plexus-utils/1.1/plexus-utils-1.1.jar 
[FATAL ERROR] Container realm = plexus.core 
urls[0] = file:/C:/java/apache-maven-2.2.0/bin/../lib/maven-2.2.0-uber.jar 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] org.apache.maven.scm.command.checkout.AbstractCheckOutCommand. 
executeCheckOutCommand(Lorg/apache/maven/scm/provider/ScmProviderRepository; 
Lorg/apache/maven/scm/ScmFileSet;Lorg/apache/maven/scm/ScmVersion;) 
Lorg/apache/maven/scm/command/checkout/CheckOutScmResult; 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
java.lang.AbstractMethodError: org.apache.maven.scm.command.checkout.AbstractCheckOutCommand. 
executeCheckOutCommand(Lorg/apache/maven/scm/provider/ScmProviderRepository; 
Lorg/apache/maven/scm/ScmFileSet;Lorg/apache/maven/scm/ScmVersion;)Lorg/apache/maven/scm/command/checkout/CheckOutScmResult; 
at org.apache.maven.scm.command.checkout.AbstractCheckOutCommand.executeCommand(
AbstractCheckOutCommand.java:49) 
at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:58) 
+0

Вы пробовали стирать ~/.m2/repository/org/apache/maven/plugins? – Jherico

+0

Да - на самом деле я вытер все местное репо (.m2) несколько раз – Bostone

ответ

2

Если вы посмотрите на POM wagon-scm, вы увидите, что он имеет зависимости от версий артефактов maven-scm-provider- * версии 1.0. В разделе расширений вы указали версии 1.3-SNAPSHOT.

Начиная с версии 1.2, метод executeCheckOutCommand() AbstractCheckOutCommand больше не является абстрактным, вместо этого он передает другой абстрактный метод с дополнительным параметром recursive. Из-за этого изменения вы получаете ошибку связи.

Самый простой способ исправить это - изменить версии расширений maven-scm-provider- *, чтобы они соответствовали требованиям, предъявляемым к wagon-scm, т. Е. Изменили версии 1.3-SNAPSHOT для версий 1.0 или 1.1.

Стоит отметить, что использование системы SCM для размещения вашего хранилища Maven на самом деле не очень хорошая идея, особенно для артефактов SNAPSHOT. Вместо этого я бы рекомендовал использовать repository manager, они предоставляют множество полезных функций поверх размещения артефактов.

+0

Привет, Rich, Спасибо, что указали это, завтра я проверю его, а если работает - отметит это как принятый ответ. Я смотрел на Artifactory в качестве опции, но это означает, что еще один сервер приложений поддерживается, поэтому я посмотрю, как будет работать решение SCM. – Bostone

+0

Yep - проблема решена, спасибо Rich! – Bostone

+1

Рад помочь, но я действительно подумал бы об использовании диспетчера хранилища, вы даже можете запустить Nexus или Artifactory автономно (они оба используют связанный Jetty), поэтому нет сервера приложений для управления –

Смежные вопросы