我对maven中的发布过程感到困惑。当我用Google搜索时,我发现这是一个两步过程:
执行
准备 版本会经历以下版本阶段:
a)检查源中没有未提交的更改
b)检查是否没有SNAPSHOT依赖
c)将POM中的版本从x-SNAPSHOT更改为新版本(系统将提示您输入要使用的版本)
d)转换POM中的SCM信息以包括标签的最终目的地
e)针对修改后的POM运行项目测试,以确认一切正常;
f) 提交修改后的POM
g)使用版本名称标记SCM中的代码(将提示)(发布的名称)
h)将POM中的版本转换为新值y-SNAPSHOT(也会提示这些值)
i) 提交修改后的POM
a)使用可选标记
从SCM URL签出b)运行预定义的Maven目标以发布项目(默认情况下,部署站点部署)
让我感到困惑的是,当我们在中检出相同的POM(我们在准备阶段提交)时,为什么我们在 准备 阶段提交POM 执行 阶段?
当我们已经拥有POM时,我们为什么要提交然后再检查一下?
任何帮助都将不胜感激。
提前致谢。
答案 0 :(得分:0)
当步骤i)完成后,您再次在POM中拥有xxx-SNAPSHOT
版本号。这是您正在开发的新版本。因此,您无法根据该POM进行发布。需要根据您在步骤g)中创建的标记创建发布。
此外,Maven确保您在发布过程中不会修改工件(从而创建未提交的更改)。这就是为什么它在执行阶段检查整个源代码树而不是依赖于文件系统本地已经存在的工件的原因。