Как видно из названия, я хочу спросить, что в случае Maven 3 нет поддержка версии $ в pom.xml больше не поддерживается. Неужели мы действительно должны писать константу каждый раз в каждом проекте в каждом pom.xml и связанных файлах конфигурации снова и снова? Как этого избежать? Как мы можем использовать такой метод управления версиями, как $ version?
Почему Maven 3 отказывается от поддержки объявления версии приложения $?
Ответы (3)
Выражение ${version}
устарело, вместо него следует использовать ${project.version}
, но оба они по-прежнему поддерживаются, и вам определенно не нужно настраиваемое свойство.
Для меня с Maven 3 отлично работает следующее:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>services</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
А также взгляните на мой предыдущий ответ на Предупреждение об использовании project.parent.version в качестве версии модуля в Maven 3, как вы используете version
(на основе того, что я видел в комментариях в другом ответе) не имеет большого смысла ИМХО, и Maven 3 на самом деле любезно предлагает следовать лучшей практике. Просто наследуйте версию.
Использование макроса внутри верхнего элемента <version/>
и версии в элементе <parent/>
никогда не работало в maven 2. Похоже, что он работал, но не вызвал ничего, кроме путаницы ниже по течению. Если вы говорите не об этом, уточните, пожалуйста, свой вопрос.
Ошибка ниже показывает устаревание $(artifactId}
и ${version}
.
[ВНИМАНИЕ] Выражение $ {artifactId} устарело. Вместо этого используйте $ {project.artifactId}. [ВНИМАНИЕ] Выражение $ {version} устарело. Вместо этого используйте $ {project.version}. [ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] Настоятельно рекомендуется исправить эти проблемы, поскольку они угрожают стабильности вашей сборки. [ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] По этой причине будущие версии Maven могут больше не поддерживать сборку таких некорректных проектов.
Предупреждающее сообщение объясняет это. Заменить ${artifactId}
на ${project.artifactId}
и ${version}
на ${project.version}