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