使用NPanday和Maven Release Plugin进行版本控制

时间:2011-07-15 18:40:16

标签: .net maven-release-plugin

我正在开发一个使用Maven和NPanday的C#.NET webservices项目。我们也想使用发布插件,但我发现了一个小版本问题。

当您进行构建时,NPanday将(方便地)使用POM文件中的版本号更新AssemblyInfo.cs文件,但它不会对SVN进行更改(我也不一定要这样做)

发布插件不知道AssemblyInfo.cs(我也不期望它)。但这意味着我的AssemblyInfo.cs和POM版本在发布操作期间不同步。

例如,假设我mvn release:branch从trunk创建2.0.x分支。在分支之前,POM和AssemblyInfo.cs可能都在主干的2.0.0-SNAPSHOT,所以分支看起来像我期望的那样。但是在更新的主干中,POM版本已经更新(例如2.1.0-SNAPSHOT),但AssemblyInfo.cs仍然是2.0.0-SNAPSHOT。

这不是一个大问题,因为主干上的下一个mvn compile将更新AssemblyInfo.cs,有人会提交它。但是release:prepare更糟糕,因为从分支创建的标记在POM中具有正确的版本(例如2.0.0),但AssemblyInfo.cs仍然说-SNAPSHOT。当发布:执行运行时,NPanday将更新AssemblyInfo.cs文件,但随后会对该标记进行浮动修改。

有没有人知道使用发布插件纠正这个问题的方法?我当然可以手工创建正确的分支/标签或编写自定义工具。或者我可以保持原样,说“AssemblyInfo.cs文件不是最终的版本源,POM是。”但我更喜欢两全其美。

1 个答案:

答案 0 :(得分:0)

我让NPanday为你生成AssemblyInfo.cs - 然后你就避免用它中的版本来检查......

Visual Studio在没有汇编信息的情况下工作正常...版本是0.0.0.0,然后:-) - 我这样做。

实际上NPanday正在“打破”maven规则 - 构建不应该使用原始文件,而只是更新/ target中的内容......