1

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

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

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

例如,假设我mvn release:branch要从主干创建一个 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。当 release:perform 运行时,NPanday 将更新AssemblyInfo.cs文件,但随后该标签有一个浮动修改。

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

4

1 回答 1

0

I'd let NPanday generate the AssemblyInfo.cs for you - then you avoid checking in things with versions in it...

Visual Studio will work fine without assembly infos... Version is 0.0.0.0, then :-) - I'm doing it that way.

Actually NPanday is "breaking" the maven rules - a build should never fiddle with the original files, but rather just update things in /target...

于 2012-06-28T15:29:28.153 回答