У нас есть POM для нашего основного проекта. Я бы сказал, что внутри определено от 10 до 15 профилей. Зависимости являются общими и, вероятно, насчитывают около 20 или около того.
У нас есть (по крайней мере) одна зависимость, где ее версия зависит от того, предназначен ли профиль для тестирования или производства. Производственные развертывания занимают:
<version>1.0.3.RELEASE</version>
как версия зависимости, тогда как развертывание dev и staging занимает
<version>1.0.3.STAGING</version>
Я хотел бы настроить все так, чтобы нам больше не приходилось переключать это вручную. Одним из очевидных решений является определение зависимостей внутри профилей. Проблема в том, что у нас есть несколько профилей. Каждый раз, когда номер версии увеличивается, мы должны быть осторожны, чтобы не пропустить где-нибудь обновление версии.
Я читал о токенизации и пытался объявить общую зависимость следующим образом:
<dependency>
<groupId>org.groupId</groupId>
<artifactId>lib-artifactId</artifactId>
<version>1.0.3.${lib-artifactId.version}</version>
</dependency>
а затем добавление
<properties>
<lib-artifactId.version>RELEASE</lib-artifactId.version>
</properties>
к каждому профилю, где RELEASE изменен на STAGING, где это уместно.
Это не работает. Ошибка заключается в том, что он не может найти библиотеку с версией
1.0.3.${lib-artifactId.version}
Другими словами, это не замена токена.
Как бы я решил это?