Maven SVN结账

myk*_*ola 5 svn maven

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

mvn scm:checkout (or scm:update) clean install 
Run Code Online (Sandbox Code Playgroud)

maven检查源/ target/checkout,然后删除它,当然它没有任何编译所以它使空jar.所以我必须写这样的东西:

mvn scm:checkout -DconnectionUrl=scm:svn:http://svn.my.dev/scm/repo/trunk/myProject -DcheckoutDirectory=src clean install
Run Code Online (Sandbox Code Playgroud)

但我不想!如何在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>
...
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*stl 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>
Run Code Online (Sandbox Code Playgroud)