Maven SVN结账

时间:2012-07-02 15:32:09

标签: svn maven

有人可以告诉我如何使用Maven从SVN进行结账和进一步更新吗?我阅读了maven.apache.org上的文档,但似乎我对此太愚蠢了,因为我无法理解如何使用scm:checkout和scm:update而不在命令行中传递它们的参数。我的意思是当我跑步时:

mvn scm:checkout (or scm:update) clean install 

maven将源代码检出/ target / checkout,然后将其删除,当然它没有任何可编译的内容,因此它会生成空jar。所以我必须写这样的东西:

mvn scm:checkout -DconnectionUrl=scm:svn:http://svn.my.dev/scm/repo/trunk/myProject -DcheckoutDirectory=src clean install

但我不想!如何在pom.xml中设置这些参数?我如何将当前目录设置为checkoutDirectory? (如果在pom.xml中设置它可能不应该是一个问题,因为我可以将它设置为$ {project.basedir},但谁知道) 我的pom.xml包含以下几行:

...
  <scm>
    <connection>scm:svn:http://svn.my.dev/scm/repo/trunk/myProject</connection>
    <developerConnection>scm:svn:http://svn.my.dev/scm/repo/trunk/myProject</developerConnection>
  </scm>
...
  <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-plugin</artifactId>
        <version>1.7</version>
        <configuration>
      <username>username</username>
          <password>password</password>
        </configuration>
      </plugin>
...

顺便说一句,connection和developerConnection有什么区别。 Maven文档只说developerConnection是......“开发人员的SCM连接URL”。这对我来说非常令人惊讶,因为我认为这是松鼠的一些联系,或者可能是兔子。

1 个答案:

答案 0 :(得分:4)

您可以将checkoutDirectory选项直接添加到maven-scm-plugin的配置中。签出文件后,您可以scm:update使用workingDirectory选项(也可以在插件配置中配置)

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-scm-plugin</artifactId>
  <version>1.7</version>
  <configuration>
    <username>username</username>
    <password>password</password>
    <checkoutDirectory>${project.basedir}/src</checkoutDirectory>
    <workingDirectory>${project.basedir}/src</workingDirectory>
  </configuration>
</plugin>