5

谁能告诉我如何使用 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”。这对我来说非常令人惊讶,因为我认为这是松鼠的某种联系,或者可能是兔子。

4

1 回答 1

4

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

<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>
于 2012-07-02T20:18:10.233 回答