我正在開發一個使用Maven和NPanday的C#.NET webservices項目。我們也想使用release插件,但是我發現了一個小版本問題。使用NPanday和Maven發佈插件進行版本控制
當你做一個構建時,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就是。」但我更喜歡兩全其美。
問得好!我會記住這一點!我目前正在爲Maven Release + NPanday構建一個展示。只要我在那裏解決了問題,我就會回覆一個答案。 在此處查找展示:https://github.com/lcorneliussen/NpShowcase –