关于我之前的问题 -> Is there a SVN Maven? ,我进入了使用页面 -> http://maven.apache.org/scm/maven-scm-plugin/usage.html 没有找到我想要的东西,这里我想做的是:
http://mysvnurl/myprojectname 我可以在其中参数化项目名称
然后让我们说是否有 3-4 或 n 个子项目(模块)(我也可以指定名称)我想 checkout ,并且我可以指定分支(主干)和修订版。简化:
前任 :
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
中)。并且可选地,您甚至可以玩一些excludes或includes(现在很荣幸,请参阅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 功能)是你所追求的。这就是我用来在单个命令中检查具有多个主干的复杂项目的方法。