2013-07-23 68 views
1

我正在嘗試從svn簽出代碼。我寫了一個pom.xml來做同樣的事情。以下是我的代碼。如何使用maven從svn結帳代碼?

<scm> 
    <connection>scm:svn:http://10.6.15.103/svn/PLM_Windchill_MidMarket/PLM_Windchill_MidMarket</connection> 
    <developerConnection>scm:svn:http://10.6.15.103/svn/PLM_Windchill_MidMarket/PLM_Windchill_MidMarket</developerConnection> 
</scm> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-scm-plugin</artifactId> 
      <version>1.7</version> 
      <configuration> 
       <checkoutDirectory>${project.basedir}/src/svn</checkoutDirectory> 
       <workingDirectory>${project.basedir}/src/svn</workingDirectory> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

當我運行mvn SCM:結賬安裝,我得到下面的錯誤:

Failed to execute goal org.apache.maven.plugins:maven-scm-plugin:1.7:checkout (default-cli) on project test_project1: Cannot run checkout command : Can't load the scm provider. Guice provision errors: 

1) Error in custom provider, java.lang.TypeNotPresentException: Type org.apache.maven.scm.provider.cvslib.cvsjava.CvsJavaScmProvider not present 
at ClassRealm[plugin>org.apache.maven.plugins:maven-scm-plugin:1.7, parent: [email protected]] 
at ClassRealm[plugin>org.apache.maven.plugins:maven-scm-plugin:1.7, parent: [email protected]] 
while locating org.apache.maven.scm.provider.ScmProvider annotated with @com.google.inject.name.Named(value=cvs) 

1 error: org/apache/maven/scm/provider/cvslib/AbstractCvsScmProvider: org.apache.maven.scm.provider.cvslib.AbstractCvsScmProvider 

我可能知道如何解決這個問題呢?

+0

這個例子可以幫助:http://stackoverflow.com/a/9992528/6309 – VonC

+0

不,我仍然得到相同的錯誤:( – galme

+0

我試過你的插件配置與我有一個存儲庫。它的工作。似乎你的存儲庫url響應是有缺陷的,maven將它解釋爲CVS。你是否嘗試在瀏覽器中瀏覽URL?它應該可以在沒有密碼的情況下訪問,或者你必須在你的maven設置中指定它。 –

回答

0

看起來你可能對這個bug擊: https://bugzilla.redhat.com/show_bug.cgi?id=962273#c1

在它建議使用cvs_native執行,而不是Java實現的bug。你可以通過改變你的插件配置如下做到這一點:

<project> 
    ... 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-scm-plugin</artifactId> 
       <version>1.7</version> 
       <configuration> 
        <providerImplementations> 
         <cvs>cvs_native</cvs> 
        </providerImplementations> 
       </configuration> 
      </plugin> 
     </plugins 
    </build> 
</project> 

另外,作爲一個側面說明,在供應鏈管理插件的最新版本是1.8.1,也許移動到新的版本會解決你的問題。

+0

我認爲目標的格式是SVN導致他使用'scm:svn:'。如果目標是CVS,那麼整個scm格式都是錯誤的。 –

+0

不,我仍然無法解決問題! – galme

+0

我的目標是svn。不是CVS – galme