У меня есть проект, который запускается клиентами, использующими среду выполнения Java 7.Maven: Как защитить проект Java 7 от использования артефактов jar, которые компилируются против Java 8?
Я добавил зависимость от артефакта, который компилируется на Java 8 - использует функции Java 8, такие как lambdas и streams.
При компиляции моего проекта я не ошибаюсь, что что-то не так.
Во время выполнения, я получаю кучу ошибок, не признавая вещи, очевидно.
Есть ли способ защитить мой проект от использования артефакта в зависимости от Java более высокого уровня? Спасибо.
* Это общий вопрос для артефакта в зависимости от некоторого низкоуровневого Java API, который пытается добавить зависимость от другого артефакта, который зависит от Java более высокого уровня.
* Я предполагаю, что это связано с тем, что Java не является частью определения явной зависимости, а скорее неявным. Вопрос заключается в том, как сделать его более явным и защищенным.
Я не думаю, что существует общее решение. Я могу подумать о том, чтобы исправить ваше определение зависимости в вашем POM до последней известной рабочей версии. Вы сконфигурировали свой POM для использования реального компилятора Java7, установленного на вашем ПК, для компиляции вашего проекта? –