Maven SVN结帐示例

ant*_*ant 7 svn maven-2

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

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

http:// mysvnurl/myprojectname我可以参数化项目名称

然后让我们说如果有3-4个或n个子项目(模块)(我也可以指定名称)我想要签出,并且我可以指定分支(主干)和修订.简化:

  • 检查myprojectname的某些子项目(模块)主干

例如:

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

我如何用maven做到这一点,有更多经验的人可以解释如何做到这一点或指向我可以阅读如何的地方,我没有根据我的需要搜索任何内容.

谢谢

Pas*_*ent 8

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

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

mvn scm:checkout -DconnectionUrl=scm:svn:https://svn.dev.java.net/svn/glassfish-svn/trunk/v3 -DcheckoutDirectory=v3
Run Code Online (Sandbox Code Playgroud)

我们可以想象将所有这些放在POM中并configuration在插件中声明这些参数(execution如果需要处理多个URL,则可以在几个中声明).可选地,你甚至可以玩一些排除包括(现在很荣幸,见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>
...
Run Code Online (Sandbox Code Playgroud)

但我从来没有像这样使用它.为了以防万一,也许可以看看scm:bootstrap你可以用来从最小的POM 引导一个项目(参见使用POM引导一个项目).但在这两种情况下,我都不能100%确定这些目标是为了提供您正在寻找的自动化水平.

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