关于我之前的问题 -> Is there a SVN Maven? ,我进入了使用页面 -> http://maven.apache.org/scm/maven-scm-plugin/usage.html 没有找到我想要的东西,这里我想做的是:

  • 我为 ex 指定的项目的结帐列表:

  • http://mysvnurl/myprojectname 我可以在其中参数化项目名称

    然后让我们说是否有 3-4 或 n 个子项目(模块)(我也可以指定名称)我想 checkout ,并且我可以指定分支(主干)和修订版。简化:
  • check out myprojectname 的某些子项目(模块)主干

  • 前任 :

    http://mysvnurl/myprojectname/project1/trunk/ *//得到一切
    http://mysvnurl/myprojectname/project2/trunk/ *//得到一切

    我将如何使用 maven 做到这一点,有更多经验的人可以解释如何做到这一点,或者指向我可以阅读如何操作的地方,我在谷歌上没有搜索到任何特定于我的需求的内容。

    谢谢

    最佳答案

    我在您之前的问题 中提到的 Maven SCM Plugin 的替代 SvnAnt 任务,因为它允许与来自 Maven 或插件(如发布插件)的 Subversion 存储库(以及其他)交互。但我想我错过了你想要做的事情。

    所以让我们回到这个问题,这是在 CLI 上使用 scm:checkout 的方法:

    mvn scm:checkout -DconnectionUrl=scm:svn:https://svn.dev.java.net/svn/glassfish-svn/trunk/v3 -DcheckoutDirectory=v3
    

    我们可以想象将所有这些都放在一个 POM 中,并在插件的 configuration 中声明这些参数(或者如果需要处理多个 URL,则在多个 execution 中)。并且可选地,您甚至可以玩一些excludesincludes(现在很荣幸,请参阅SCM-526)。
    ...
    <execution>
      <id>perform-checkout</id>
      <configuration>
        <connectionUrl>myUrl</connectionUrl>
        <checkoutDirectory>myDirectory</checkoutDirectory>
        <excludes>folder1/*,folder2/*</excludes>
      </configuration>
      <phase><!-- some phase --></phase>
      <goals>
         <goal>checkout</goal>
      </goals>
    </execution>
    ...
    

    但我从来没有像这样使用过它。以防万一,也许可以看看 scm:bootstrap ,您可以使用它来从最小的 POM 引导项目(请参阅 Bootstrapping a Project Using a POM )。但在这两种情况下,我都不能 100% 确定这些目标旨在提供您正在寻找的自动化水平。

    我越看你的问题,我就越认为 svn:externals (即 Subversion 功能)是你所追求的。这就是我用来在单个命令中检查具有多个主干的复杂项目的方法。

    10-07 16:03
    查看更多