Почему Maven 3 отказывается от поддержки заявки $ версии?
-
26-09-2019 - |
Вопрос
Как вы видите из названия, я хочу спросить об этом в случае Мавана 3 Нет поддержки для версии $ POM.xml больше. Должны ли мы действительно написать постоянную каждый раз в каждом проекте в каждом POM.XML и связанных с этим файлам конфигурации снова и снова? Как мы можем избежать этого делать? Как мы можем использовать метод версий, такой как $ версия?
Решение
Выражение ${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} вместо этого. [Предупреждение] Выражение $ {Версия} устарена. Пожалуйста, используйте $ {Project.Version} вместо. [ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] Настоятельно рекомендуется исправлять эти проблемы, потому что они угрожают ему стабильности вашей сборки. [ПРЕДУПРЕЖДЕНИЕ] [ПРЕДУПРЕЖДЕНИЕ] По этой причине будущие версии Maven могут больше не поддерживать создание таких уродливых проектов.
Предупреждающее сообщение вычисляет это. Заменять ${artifactId}
с ${project.artifactId}
, и ${version}
с ${project.version}