Ответ 1
Да, это выглядит сломанным
Интересно. Я тестировал это поведение как в IntelliJ IDEA Ultimate 14.1.7, так и в IntelliJ IDEA Community 2016.1.2, а свойства, которые IDEA не знает, по-прежнему отображаются как красные, даже если все проверки Maven отключены. Это выглядит ошибкой (или, если можно так выразиться, нереализованной функцией) в IDEA, что ошибка, которую он дает, когда она не может идентифицировать свойство, не контролируется настройками проверки.
В отладчике ошибок IDEA есть пара вопросов:
- IDEA-96358: Maven: невозможно разрешить переменные окружения
- IDEA-100272: Maven: поддержка неявных свойств
Там также сообщение о подобной проблеме на форуме поддержки JetBrains:
Возможное обходное решение
Там обходной путь указан как в комментариях IDEA-96358, так и в сообщении поддержки. Вы можете добавить фиктивную версию своих динамических свойств в настройках/сборке, выполнении, разработке/сборке/Maven/Runner/Properties, как на этом скриншоте:
Ввод значений там позволит IDEA узнать о них, чтобы они не выделяли их красным цветом. Тем не менее, я обнаружил в своем тестировании, что, поскольку IDEA передавал значения как свойства Maven, они не перезаписывались плагином buildnumber, и вместо этого я видел свое фиктивное значение, когда я пытался его использовать. (Единственный способ, с помощью которого я его тестировал, был в оценке maven-help-plugin, но, возможно, он работает, когда используется другим способом?) Чтобы иметь возможность использовать динамически настроенное значение, в моей конкретной конфигурации сборки я снял флажок "Использовать параметры проекта" и удалил свойство "фиктивный", как показано на этом снимке экрана:
Это начинает довольно неприятное обходное решение, как если бы у вас было много конфигураций сборки Maven и, как и возможность для них всех по умолчанию для одних и тех же параметров бегуна, теперь вам придется дублировать "настоящую" настройку вы хотите в каждой конфигурации и по умолчанию в диалоговом окне настроек проекта должны быть только значения "dummy", чтобы IDEA знал, что он не должен рассматривать ссылку на это свойство как ошибку. Это также требует, чтобы вы запускали все ваши команды Maven с помощью конфигураций сборки, а не с помощью других средств, например, двойного щелчка по жизненным циклам в окне инструментов "Maven Projects". Хотя, если у вас мало конфигураций сборки, это единственный способ запустить Maven изнутри IDEA, а красный цвет при редактировании файла pom.xml вас раздражает, возможно, это обходное решение является приемлемым компромиссом для вас.
Дальнейшие шаги
Похоже, что встроенная функциональность IDEA на самом деле не покрывает динамически генерируемые свойства, я думаю, что единственный реальный способ исправить это - убедить JetBrains в этом, если только не будет возможности добавить функциональность в третий плагин -party (который сейчас очень выходит за рамки моего опыта). Я предлагаю либо проголосовать, либо прокомментировать один из билетов в системе отслеживания JIRA, о котором я упоминал, или создать свой собственный, если вы считаете, что ваша проблема достаточно различна (что может быть). Кроме того, вы можете обратиться в службу поддержки JetBrains, особенно если у вас есть платная подписка на них. Хотя я подозреваю, что у них есть много приоритетов для работы (как и у всех нас), я также подозреваю, что больше людей, просящих что-то, увеличивает вероятность того, что он двинется к началу своего отставания. Спросить красиво о чем-то редко болит.