我有一个大型的多模块项目,想要将SCM信息指定给Maven。但是,每个模块和父项目都在SVN上有专用文件夹,因此SCM信息似乎对每个模块都是特定的。
连接和developerConnection元素需要使用哪个值?我需要为每个模块配置SCM吗?还是可以在父项目中一次性进行配置?
谢谢。
连接和developerConnection元素需要使用哪个值?我需要为每个模块配置SCM吗?还是可以在父项目中一次性进行配置?
谢谢。
我测试了两种情况:
只在parent-pom级别定义配置;
在parent-pom和子模块级别都定义配置。
如果您在parent pom项目上尝试mvn -DdryRun=true release:prepare
,您将获得一个release.properties文件,显示您对发行版配置的maven使用,如果它实际执行prepare目标,则会使用。
从那里开始,你可以看到,当测试第一种情况时,maven不会为子模块打标记。您将只看到一个project.scm.[groupId]\:[artifactId].url
属性。测试第二个场景,也在子模块级别完成scm配置,每个子模块将获得一个属性。
我的结论是,对于扁平的多模块项目结构,您应该在parent-pom和模块级别都定义scm,每个人都指向此pom所在的scm目录。