IT干货网

svn之Maven SVN 结帐示例

zhoujg 2024年10月01日 编程设计 28 0

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

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

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

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

    前任 :

    http://mysvnurl/myprojectname/project1/trunk/ *//获取所有内容
    http://mysvnurl/myprojectname/project2/trunk/ *//获取所有内容

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

    谢谢

    请您参考如下方法:

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

    那么让我们回到这个问题,这里是如何使用 scm:checkout 在 CLI 上:

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

    我们可以想象将所有这些放在一个 POM 中并在 configuration 中声明这些参数。插件(或多个 execution 如果您需要处理多个 URL)。并且可选地,您甚至可以玩一些 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 功能)是您所追求的。这就是我用来在单个命令中检查具有多个主干的复杂项目的方法。


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!