Я работаю над проектом веб-сервисов C# .NET, который использует Maven с NPanday. Мы также хотим использовать плагин release, но я нашел незначительную проблему с версией.Версии с плагинами выпуска NPanday и Maven
NPanday (удобно) обновит файл AssemblyInfo.cs
с номером версии из файла POM при выполнении сборки, но он не зафиксирует это изменение в SVN (и я бы не захотел его).
Плагин выпуска не знает о AssemblyInfo.cs
(и я не ожидал его). Но это означает, что мои версии AssemblyInfo.cs и POM не синхронизируются во время операций релиза.
Например, я делаю mvn release:branch
, чтобы создать ветку 2.0.x с багажника. POM и AssemblyInfo.cs
были, вероятно, оба в 2.0.0-SNAPSHOT в стволе до разветвления, поэтому ветвь выглядит так, как я ожидал. Но в обновленном багажнике версия ПОМ была обновлена (например, 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 –