Меня попросили сделать это, поэтому, пожалуйста, не предлагайте мне этого не делать. : -Р
В настоящее время мы создаем многомодульный проект с Maven. У нас нет проблем с этим. Мы используем плагин релиза Maven, и мы получаем сборки SNAPSHOT для разработки и сборки релизов в Jenkins. Плагин релиза автоматически увеличивает 3-е место строки версии. Жизнь хороша.
Но меня попросили добавить 4-е место в нашей строке версий, которая заполняется сборкой Jenkins #.
Канонический способ, который, как я вижу, предлагал сделать это, прекрасно работает с одним модулем: вы определяете свойство, такое как build.number, для значения по умолчанию "0-SNAPSHOT", и вы определяете POM, чтобы иметь значение элемента как "1.9. $ {build.number}". И вы задали в своей задаче Jenkins определение build.number как build # Jenkins для его вызова Maven.
Было бы замечательно, если бы у нас был один модуль, но у нас его нет. У нас есть несколько модулей, и в Maven я тоже не могу
1. не указывать версию в POM дочернего модуля, ни
2. использовать свойство в версии POM дочернего модуля.
Я понимаю, что для Maven POM плохая идея пытаться создавать несколько артефактов в одном модуле (используя, скажем, профили), поэтому я не хочу пытаться свести этот проект к одному модулю.
Возможно, я мог бы вместо этого попытаться разделить его на отдельные проекты, за исключением того, что это выглядит радикально, и, кроме того, этот проект действительно производит очень тесно связанные артефакты, поэтому я хочу быть уверенным, что все артефакты будут созданы для любого изменения исходного кода в проект.
Какие-нибудь решения?