2011-07-15 71 views
1

我正在開發一個使用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就是。」但我更喜歡兩全其美。

+0

問得好!我會記住這一點!我目前正在爲Maven Release + NPanday構建一個展示。只要我在那裏解決了問題,我就會回覆一個答案。 在此處查找展示:https://github.com/lcorneliussen/NpShowcase –

回答

0

我會讓NPanday爲您生成的AssemblyInfo.cs - 那麼你避免的東西,在它的版本檢查...

Visual Studio將正常工作沒有裝配的相關信息......版本是0.0.0.0 ,那麼:-) - 我正在那樣做。

其實NPanday被「打破」 Maven的規則 - 構建不應該與原始文件不甘示弱,而是剛剛/目標更新的東西...

相關問題