maven-scm-publish-plugin 是一个实用插件,允许将 Maven 网站发布到任何支持的 SCM。主要目标是拥有一个实用插件以允许 Apache 项目通过ASF svnpubsub 系统发布 Maven 网站。
除了 SCM 操作之外,它还负责修复maven-site-plugin生成的换行不一致(请参阅MSITE-121),这会阻止简单的内容导入到 SCM。
该插件也已经使用 Git SCM 进行了测试,例如可以推送 GitHub Pages 的内容。
默认情况下,该插件在分阶段网站上工作(请参阅内容参数)。
默认情况下,它首先将目录的内容从 SCM(请参阅pubScmUrl参数)检出到target/scmpublish-checkout(请参阅checkoutDirectory参数)。
然后将本地暂存的内容应用于签出,发出适当的 SCM 命令来添加和删除条目,然后签入。
插件的scmpublish.dryRun参数避免了所有 SCM 操作,并简单地注销添加、删除和更改的文件。
scmpublish.skipCheckin参数省略了最终签入。这允许您访问target/scmpublish-checkout,并在提交到 SCM 之前验证其内容。
即使没有任何pom.xml /Maven 项目,您也可以使用本地内容更新 SCM 内容:
mvn scm-publish:publish-scm -Dscmpublish.pubScmUrl=scm:<scm-provider>... -Dscmpublish.content=...path-to-content...
SCM 内容将被签出到一个临时目录,然后本地内容将应用于签出,然后再签入。
有关示例,请参见maven.apache.org 内容导入脚本。
请参阅一些提示。
有 2 个已知限制:
理想情况下,POM 的<distributionManagement > 部分将支持 scm url ,然后发布将只是mvn site-deploy,对于非平面多模块站点没有任何问题。
要实现这样的梦想,有几个步骤:
那么这个插件就会过时,取而代之的是自然的maven-site-plugin:deploy目标。