我正在尝试将我们的旧版构建系统迁移到maven。通过使用发布:准备和发布:执行任务,我成功地设法让maven在CVS中进行一些标记。
我是maven的新手,我对CVS中标签的理解有点朦胧,所以请耐心等待。
我们的代码由一系列模块组成,每个模块都使用标签在CVS中进行版本化。
例如,模块ER_api_test的版本为0.18.0,0.19.0等,每个版本都对应于CVS中的标签(例如ER_api_test_0-18)。
现在我想做一些分支。所以我需要拿一个旧版本的模块,然后分支它。如果我使用0.8.0版本,那么当我提交并提升(使用我们的构建系统创建CVS标记)时,这将给我0-8-1。
现在当我查看0-8-0的代码时,pom.xml的版本为0.8.0。我相信为了分支这个模块,我需要将其修改为0.8.1-SNAPSHOT。实际上,当我手动进行修改时,我可以使用我的maven版本:执行命令来创建0.8.1。
我想运行一个命令,它会自动修改版本。有一个maven命令名为" release:update-versions"我试图用它做这个,但它抱怨因为我的版本不是快照:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.2:update-versions (default-cli) on project ER_api_test: You don't have a SNAPSHOT project in the reactor projects list.
如何自动修改版本?我想尽可能使用maven命令,而不是awk或sed,因为构建系统在java中运行。
修改: 一种选择是尝试使用maven进行分支。以下是CVS运行以检查分支的命令:
cvs -z3 -d :pserver:user@cvshost:2401/opt/cvs/us -q tag -c -b ER_api_test_0-4_patches
cvs -z3 -d :pserver:user@cvshost:2401/opt/cvs/us -q tag -c ER_api_test_0-4-0
如果我可以让maven运行等效的命令,同时将版本更新为快照,那也可以。